<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Jetson Inference: Video Streaming</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="NVLogo_2D.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Jetson Inference
   </div>
   <div id="projectbrief">DNN Vision Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__video.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a>  </div>
  <div class="headertitle">
<div class="title">Video Streaming<div class="ingroups"><a class="el" href="group__util.html">Utilities Library (jetson-utils)</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> and <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> APIs for input and output video streams.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:structURI"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#structURI">URI</a></td></tr>
<tr class="memdesc:structURI"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> of a video device, IP stream, or file/directory.  <a href="group__video.html#structURI">More...</a><br /></td></tr>
<tr class="separator:structURI"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structvideoOptions"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#structvideoOptions">videoOptions</a></td></tr>
<tr class="memdesc:structvideoOptions"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> struct contains common settings that are used to configure and query <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> and <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> streams.  <a href="group__video.html#structvideoOptions">More...</a><br /></td></tr>
<tr class="separator:structvideoOptions"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:classvideoOutput"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#classvideoOutput">videoOutput</a></td></tr>
<tr class="memdesc:classvideoOutput"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> API is for rendering and transmitting frames to video input devices such as display windows, broadcasting RTP network streams to remote hosts over UDP/IP, and saving videos/images/directories to disk.  <a href="group__video.html#classvideoOutput">More...</a><br /></td></tr>
<tr class="separator:classvideoOutput"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:classvideoSource"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#classvideoSource">videoSource</a></td></tr>
<tr class="memdesc:classvideoSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> API is for capturing frames from video input devices such as MIPI CSI cameras, V4L2 cameras, video/images files from disk, directories containing a sequence of images, and from RTP/RTSP network video streams over UDP/IP.  <a href="group__video.html#classvideoSource">More...</a><br /></td></tr>
<tr class="separator:classvideoSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gaf0923737dee5ff7a8f1a17c4b9c1f2fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#gaf0923737dee5ff7a8f1a17c4b9c1f2fe">LOG_VIDEO</a>&#160;&#160;&#160;&quot;[video]  &quot;</td></tr>
<tr class="separator:gaf0923737dee5ff7a8f1a17c4b9c1f2fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga408346b18d1f4c711279010d2351f7ce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#ga408346b18d1f4c711279010d2351f7ce">VIDEO_OUTPUT_USAGE_STRING</a></td></tr>
<tr class="memdesc:ga408346b18d1f4c711279010d2351f7ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard command-line options able to be passed to <a class="el" href="group__video.html#aa2754b5d31e5466ad35db3f2832209f1" title="Create videoOutput interface from a videoOptions struct that&#39;s already been filled out.">videoOutput::Create()</a>  <a href="group__video.html#ga408346b18d1f4c711279010d2351f7ce">More...</a><br /></td></tr>
<tr class="separator:ga408346b18d1f4c711279010d2351f7ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2f89bd1b25834e27c1be213ee862d5ae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#ga2f89bd1b25834e27c1be213ee862d5ae">VIDEO_SOURCE_USAGE_STRING</a></td></tr>
<tr class="memdesc:ga2f89bd1b25834e27c1be213ee862d5ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard command-line options able to be passed to <a class="el" href="group__video.html#aadf5947b119db934f02fefcd8ffe23ee" title="Create videoSource interface from a videoOptions struct that&#39;s already been filled out.">videoSource::Create()</a>  <a href="group__video.html#ga2f89bd1b25834e27c1be213ee862d5ae">More...</a><br /></td></tr>
<tr class="separator:ga2f89bd1b25834e27c1be213ee862d5ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p><a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> and <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> APIs for input and output video streams. </p>
<hr/><h2 class="groupheader">Class Documentation</h2>
<a name="structURI" id="structURI"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structURI">&#9670;&nbsp;</a></span>URI</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct URI</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> of a video device, IP stream, or file/directory. </p>
<p>The <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> object is used by <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a>, <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a>, and <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> to identify which resource is being streamed. It will parse a string into protocol, path, and port/extension components.</p>
<p><a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> protocols for <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> input streams include MIPI CSI cameras (<code>csi://</code>), V4L2 cameras (<code>v4l2://</code>), RTP/RTSP networking streams (<code>rtp://</code> and <code>rtsp://</code>), and disk-based videos/images/directories (<code><a href="file://">file://</a></code>) </p><pre class="fragment">-  `csi://0` for MIPI CSI cameras, where `0` can be replaced with the camera port.
   It is also assumed that if a number with no protocol is specified (e.g. `"0"`),
   this means to use the MIPI CSI camera of that number (`"0"` -&gt; `csi://0`)

- `v4l2:///dev/video0` for V4L2 cameras, where `/dev/video0` can be replaced with
   a different video device (e.g. `v4l2:///dev/video1` for V4L2 video device `1`).
   If no protocol is specified but the string begins with `/dev/video`, then it is
   assumed that the protocol is V4L2 (`/dev/video0` -&gt; `v4l2:///dev/video0`)

- `rtp://@:1234` to recieve an RTP network stream, where `1234` is the port and `@` is shorthand
   for localhost.  `@` can also be substituted for the IP address of a multicast group.
   Note that it is important to manually specify the codec and width/height when using RTP,
   as these values cannot be discovered from the RTP stream itself and need to be provided.
   @see videoOptions for more info about `--input-codec`, `--input-width`, and `--input-height`.

- `rtsp://username:password@&lt;remote-host&gt;:1234` to subscribe to an RTSP network stream, where
   `&lt;remote-host&gt;` should be substituted for the remote host's IP address or hostname, and 
   `1234` is the port.  For example, `rtsp://192.168.1.2:5000`.  The `username` and `password` 
   are optional, and are only used for RTSP streams that require authentication.

- `file:///home/user/my_video.mp4` for disk-based videos, images, and directories of images.
   You can leave off the `file://` protocol identifier and it will be deduced from the path.
   It can be a relative or absolute path.  If a directory is specified that contains images,
   those images will be loaded in sequence (sorted alphanumerically).  The path can also
   contain wildcard characters, for example `"images/*.jpg"` - however when using wildcards
   from the command line, enclose the string in quotes otherwise the OS will pre-expand them.
   Supported video formats for loading include MKV, MP4, AVI, and FLV. Supported codecs for 
   decoding include H.264, H.265, VP8, VP9, MPEG-2, MPEG-4, and MJPEG. Supported image formats
   for loading include JPG, PNG, TGA, BMP, GIF, PSD, HDR, PIC, and PNM (PPM/PGM binary).
</pre><p><a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> protocols for <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> streams include rendering to displays (<code>display://</code>), broadcasting RTP/RTSP streams (<code>rtp://</code>, <code>rtsp://</code>), WebRTC streams (<code>webrtc://</code>), and saving videos/images to disk (<code><a href="file://">file://</a></code>) </p><pre class="fragment">- `display://0` for rendering to display using OpenGL, where `0` corresponds to the display number.
   By default, an OpenGL window will be created, unless the `--headless` command line option is used.

- `rtp://&lt;remote-host&gt;:1234` to broadcast a compressed RTP stream to a remote host, where you should
   substitute `&lt;remote-host&gt;` with the remote host's IP address or hostname, and `1234` is the port.

- `rtsp://@:8554/my_stream` to serve a compressed RTSP stream at the specified port and stream path.
   RTSP clients can connect to the stream at the specified path.  Using this will create a RTSP server
   that can handle multiple videoOutput streams on the same port but with different paths
   (e.g. `rtsp://&lt;hostname&gt;:8554/my_stream_1`, `rtsp://&lt;hostname&gt;:8554/my_stream_2`, ect)

- `webrtc://@:1234/my_stream` to serve a compressed WebRTC stream at the specified port and path
   that browsers can connect to and view.  Users will be able to navigate their browser to
   `http://&lt;hostname&gt;:1234/my_stream` and view a rudimentary video player that plays the stream.
   More advanced web front-ends can be created by using standard client-side Javascript WebRTC APIs.

- `file:///home/user/my_video.mp4` for saving videos, images, and directories of images to disk.
   You can leave off the `file://` protocol identifier and it will be deduced from the path.
   It can be a relative or absolute path.  You can output a sequence of images using a path of
   the form `my_dir/image_%i.jpg` (where `%i` can include printf-style modifiers like `%03i`).  
   The `%i` will be replaced with the image number in the sequence.  If just a directory is
   specified, then by default it will create a sequence of the form `%i.jpg` in that directory.
   Supported video formats for saving include MKV, MP4, AVI, and FLV. Supported codecs for 
   encoding include H.264, H.265, VP8, VP9, and MJPEG. Supported image formats for saving 
   include JPG, PNG, TGA, and BMP.
</pre><p>The <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> strings used should take one of the above forms for input/output streams to be parsed correctly. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Public Member Functions</h3></td></tr>
<tr class="memitem:afe5b04255d71cadd7d40cadda71913ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#afe5b04255d71cadd7d40cadda71913ae">URI</a> ()</td></tr>
<tr class="memdesc:afe5b04255d71cadd7d40cadda71913ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="group__video.html#afe5b04255d71cadd7d40cadda71913ae">More...</a><br /></td></tr>
<tr class="separator:afe5b04255d71cadd7d40cadda71913ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43668adf597739b1a8551f3bff5d2181"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a43668adf597739b1a8551f3bff5d2181">URI</a> (const char *uri)</td></tr>
<tr class="memdesc:a43668adf597739b1a8551f3bff5d2181"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a new <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> from the given resource string.  <a href="group__video.html#a43668adf597739b1a8551f3bff5d2181">More...</a><br /></td></tr>
<tr class="separator:a43668adf597739b1a8551f3bff5d2181"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5496b028bbea5c418d8c230ec8b02cd5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a5496b028bbea5c418d8c230ec8b02cd5">Parse</a> (const char *uri)</td></tr>
<tr class="memdesc:a5496b028bbea5c418d8c230ec8b02cd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> from the given resource string.  <a href="group__video.html#a5496b028bbea5c418d8c230ec8b02cd5">More...</a><br /></td></tr>
<tr class="separator:a5496b028bbea5c418d8c230ec8b02cd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29ef525ac8e157cdd752f7d700020e59"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a29ef525ac8e157cdd752f7d700020e59">Print</a> (const char *prefix=&quot;&quot;) const</td></tr>
<tr class="memdesc:a29ef525ac8e157cdd752f7d700020e59"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__log.html#classLog" title="Message logging with a variable level of output and destinations.">Log</a> the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>, with an optional prefix label.  <a href="group__video.html#a29ef525ac8e157cdd752f7d700020e59">More...</a><br /></td></tr>
<tr class="separator:a29ef525ac8e157cdd752f7d700020e59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5197ff15893b45c6f4007ed9568bdead"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a5197ff15893b45c6f4007ed9568bdead">c_str</a> () const</td></tr>
<tr class="memdesc:a5197ff15893b45c6f4007ed9568bdead"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cast to C-style string (<code>const char*</code>)  <a href="group__video.html#a5197ff15893b45c6f4007ed9568bdead">More...</a><br /></td></tr>
<tr class="separator:a5197ff15893b45c6f4007ed9568bdead"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0476d982fe38ab906c705664f0a4693"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#af0476d982fe38ab906c705664f0a4693">operator const char *</a> () const</td></tr>
<tr class="memdesc:af0476d982fe38ab906c705664f0a4693"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cast to C-style string (<code>const char*</code>)  <a href="group__video.html#af0476d982fe38ab906c705664f0a4693">More...</a><br /></td></tr>
<tr class="separator:af0476d982fe38ab906c705664f0a4693"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbfa6cce0495163de35033b291d19b71"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#acbfa6cce0495163de35033b291d19b71">operator std::string</a> () const</td></tr>
<tr class="memdesc:acbfa6cce0495163de35033b291d19b71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cast to <code>std::string</code>  <a href="group__video.html#acbfa6cce0495163de35033b291d19b71">More...</a><br /></td></tr>
<tr class="separator:acbfa6cce0495163de35033b291d19b71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfdb65695d30cb734ce341b769f5f8f8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#adfdb65695d30cb734ce341b769f5f8f8">operator=</a> (const char *uri)</td></tr>
<tr class="memdesc:adfdb65695d30cb734ce341b769f5f8f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator (parse <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string)  <a href="group__video.html#adfdb65695d30cb734ce341b769f5f8f8">More...</a><br /></td></tr>
<tr class="separator:adfdb65695d30cb734ce341b769f5f8f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7120096cec4c394bcf696644d4e26baf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a7120096cec4c394bcf696644d4e26baf">operator=</a> (const std::string &amp;uri)</td></tr>
<tr class="memdesc:a7120096cec4c394bcf696644d4e26baf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator (parse <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string)  <a href="group__video.html#a7120096cec4c394bcf696644d4e26baf">More...</a><br /></td></tr>
<tr class="separator:a7120096cec4c394bcf696644d4e26baf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Public Attributes</h3></td></tr>
<tr class="memitem:a6ddfb39ef99352b24fef204ecb39404f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a6ddfb39ef99352b24fef204ecb39404f">string</a></td></tr>
<tr class="memdesc:a6ddfb39ef99352b24fef204ecb39404f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Full resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> (what was originally parsed)  <a href="group__video.html#a6ddfb39ef99352b24fef204ecb39404f">More...</a><br /></td></tr>
<tr class="separator:a6ddfb39ef99352b24fef204ecb39404f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25a7a89511d3018d8b855ae9402e6848"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a25a7a89511d3018d8b855ae9402e6848">protocol</a></td></tr>
<tr class="memdesc:a25a7a89511d3018d8b855ae9402e6848"><td class="mdescLeft">&#160;</td><td class="mdescRight">Protocol string (e.g.  <a href="group__video.html#a25a7a89511d3018d8b855ae9402e6848">More...</a><br /></td></tr>
<tr class="separator:a25a7a89511d3018d8b855ae9402e6848"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18b7b6f3328197824e58dc4cf46301df"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a18b7b6f3328197824e58dc4cf46301df">path</a></td></tr>
<tr class="memdesc:a18b7b6f3328197824e58dc4cf46301df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Path (for a network <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> this comes after the port)  <a href="group__video.html#a18b7b6f3328197824e58dc4cf46301df">More...</a><br /></td></tr>
<tr class="separator:a18b7b6f3328197824e58dc4cf46301df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14d479b9d6e6879e39987e941f7094fd"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a14d479b9d6e6879e39987e941f7094fd">extension</a></td></tr>
<tr class="memdesc:a14d479b9d6e6879e39987e941f7094fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">File extension (for files only, otherwise empty)  <a href="group__video.html#a14d479b9d6e6879e39987e941f7094fd">More...</a><br /></td></tr>
<tr class="separator:a14d479b9d6e6879e39987e941f7094fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a837154f4e2c1090b948edc788d1c1e38"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a837154f4e2c1090b948edc788d1c1e38">location</a></td></tr>
<tr class="memdesc:a837154f4e2c1090b948edc788d1c1e38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Path, IP address, or device name.  <a href="group__video.html#a837154f4e2c1090b948edc788d1c1e38">More...</a><br /></td></tr>
<tr class="separator:a837154f4e2c1090b948edc788d1c1e38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3985536269f5f01ed04128c015a794f2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a3985536269f5f01ed04128c015a794f2">port</a></td></tr>
<tr class="memdesc:a3985536269f5f01ed04128c015a794f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">IP port, camera port, ect.  <a href="group__video.html#a3985536269f5f01ed04128c015a794f2">More...</a><br /></td></tr>
<tr class="separator:a3985536269f5f01ed04128c015a794f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Constructor &amp; Destructor Documentation</h4>
<a id="afe5b04255d71cadd7d40cadda71913ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe5b04255d71cadd7d40cadda71913ae">&#9670;&nbsp;</a></span>URI() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">URI::URI </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Default constructor. </p>

</div>
</div>
<a id="a43668adf597739b1a8551f3bff5d2181"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43668adf597739b1a8551f3bff5d2181">&#9670;&nbsp;</a></span>URI() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">URI::URI </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>uri</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Construct a new <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> from the given resource string. </p>
<dl class="section see"><dt>See also</dt><dd>the documentation above for valid <a class="el" href="group__video.html#a6ddfb39ef99352b24fef204ecb39404f" title="Full resource URI (what was originally parsed)">string</a> formats. </dd></dl>

</div>
</div>
<h4 class="groupheader">Member Function Documentation</h4>
<a id="a5197ff15893b45c6f4007ed9568bdead"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5197ff15893b45c6f4007ed9568bdead">&#9670;&nbsp;</a></span>c_str()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char* URI::c_str </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Cast to C-style string (<code>const char*</code>) </p>

</div>
</div>
<a id="af0476d982fe38ab906c705664f0a4693"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af0476d982fe38ab906c705664f0a4693">&#9670;&nbsp;</a></span>operator const char *()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">URI::operator const char * </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Cast to C-style string (<code>const char*</code>) </p>

</div>
</div>
<a id="acbfa6cce0495163de35033b291d19b71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acbfa6cce0495163de35033b291d19b71">&#9670;&nbsp;</a></span>operator std::string()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">URI::operator std::string </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Cast to <code>std::string</code> </p>

</div>
</div>
<a id="adfdb65695d30cb734ce341b769f5f8f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfdb65695d30cb734ce341b769f5f8f8">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void URI::operator= </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>uri</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Assignment operator (parse <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string) </p>

</div>
</div>
<a id="a7120096cec4c394bcf696644d4e26baf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7120096cec4c394bcf696644d4e26baf">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void URI::operator= </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>uri</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Assignment operator (parse <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string) </p>

</div>
</div>
<a id="a5496b028bbea5c418d8c230ec8b02cd5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5496b028bbea5c418d8c230ec8b02cd5">&#9670;&nbsp;</a></span>Parse()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool URI::Parse </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>uri</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parse the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> from the given resource string. </p>
<dl class="section see"><dt>See also</dt><dd>the documentation above for valid <a class="el" href="group__video.html#a6ddfb39ef99352b24fef204ecb39404f" title="Full resource URI (what was originally parsed)">string</a> formats. </dd></dl>

</div>
</div>
<a id="a29ef525ac8e157cdd752f7d700020e59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29ef525ac8e157cdd752f7d700020e59">&#9670;&nbsp;</a></span>Print()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void URI::Print </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>prefix</em> = <code>&quot;&quot;</code></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="group__log.html#classLog" title="Message logging with a variable level of output and destinations.">Log</a> the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>, with an optional prefix label. </p>

</div>
</div>
<h4 class="groupheader">Member Data Documentation</h4>
<a id="a14d479b9d6e6879e39987e941f7094fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14d479b9d6e6879e39987e941f7094fd">&#9670;&nbsp;</a></span>extension</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string URI::extension</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>File extension (for files only, otherwise empty) </p>

</div>
</div>
<a id="a837154f4e2c1090b948edc788d1c1e38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a837154f4e2c1090b948edc788d1c1e38">&#9670;&nbsp;</a></span>location</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string URI::location</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Path, IP address, or device name. </p>

</div>
</div>
<a id="a18b7b6f3328197824e58dc4cf46301df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18b7b6f3328197824e58dc4cf46301df">&#9670;&nbsp;</a></span>path</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string URI::path</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Path (for a network <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> this comes after the port) </p>

</div>
</div>
<a id="a3985536269f5f01ed04128c015a794f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3985536269f5f01ed04128c015a794f2">&#9670;&nbsp;</a></span>port</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int URI::port</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>IP port, camera port, ect. </p>

</div>
</div>
<a id="a25a7a89511d3018d8b855ae9402e6848"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25a7a89511d3018d8b855ae9402e6848">&#9670;&nbsp;</a></span>protocol</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string URI::protocol</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Protocol string (e.g. </p>
<p><code>file</code>, <code>csi</code>, <code>v4l2</code>, <code>rtp</code>, ect) </p>

</div>
</div>
<a id="a6ddfb39ef99352b24fef204ecb39404f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ddfb39ef99352b24fef204ecb39404f">&#9670;&nbsp;</a></span>string</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string URI::string</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Full resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> (what was originally parsed) </p>

</div>
</div>

</div>
</div>
<a name="structvideoOptions" id="structvideoOptions"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structvideoOptions">&#9670;&nbsp;</a></span>videoOptions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct videoOptions</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>The <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> struct contains common settings that are used to configure and query <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> and <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> streams. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Public Types</h3></td></tr>
<tr class="memitem:a4065c77be7f3be75eddfc16b6efb36ed"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36ed">DeviceType</a> { <br />
&#160;&#160;<a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36edabf0f857ba260214fa9fbeda070cf739c">DEVICE_DEFAULT</a> = 0, 
<a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36edac77f0e925955b23e5e4c0bd33b58c40e">DEVICE_V4L2</a>, 
<a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36edad4837999d7b7dbe4b83fc405792fd597">DEVICE_CSI</a>, 
<a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36eda13cb55a7a6d78170f4804dd342b3fc0a">DEVICE_IP</a>, 
<br />
&#160;&#160;<a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36eda14ace01196686e68ba5f6def69f44886">DEVICE_FILE</a>, 
<a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36eda54f0567fd7cf91c40b5e4f13e874da79">DEVICE_DISPLAY</a>
<br />
 }</td></tr>
<tr class="memdesc:a4065c77be7f3be75eddfc16b6efb36ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Device interface types.  <a href="group__video.html#a4065c77be7f3be75eddfc16b6efb36ed">More...</a><br /></td></tr>
<tr class="separator:a4065c77be7f3be75eddfc16b6efb36ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f7ae50399192afba10ee226310878b8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a> { <a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8a75394f2114da6d4d1a690891f70a8b0c">INPUT</a> = 0, 
<a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8a054b71f306226210b98344694784699d">OUTPUT</a>
 }</td></tr>
<tr class="memdesc:a7f7ae50399192afba10ee226310878b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Input/Output stream type.  <a href="group__video.html#a7f7ae50399192afba10ee226310878b8">More...</a><br /></td></tr>
<tr class="separator:a7f7ae50399192afba10ee226310878b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd8d5155cc7b38791698b4e89c6a96ee"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96ee">FlipMethod</a> { <br />
&#160;&#160;<a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96eea7c09134804adf49ef07558b78d17f031">FLIP_NONE</a> = 0, 
<a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96eea7e8abbc09244387c1f4607c902976b22">FLIP_COUNTERCLOCKWISE</a>, 
<a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96eeac748895a98407e5dde91b9013611cf19">FLIP_ROTATE_180</a>, 
<a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96eeac19ebe40943991cf5e9fcb69e6c5c3e5">FLIP_CLOCKWISE</a>, 
<br />
&#160;&#160;<a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96eea5d3fdf02e598b86b148161ca516d5162">FLIP_HORIZONTAL</a>, 
<a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96eea42d69b4a7eed239acb174789ce6e22e4">FLIP_UPPER_RIGHT_DIAGONAL</a>, 
<a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96eea4e10ce85a7798075172005bb720912f3">FLIP_VERTICAL</a>, 
<a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96eea089c5073db1bcb4b658be055abdfe9eb">FLIP_UPPER_LEFT_DIAGONAL</a>, 
<br />
&#160;&#160;<a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96eeae1237dbae8c7847640966457de536a96">FLIP_DEFAULT</a> = FLIP_NONE
<br />
 }</td></tr>
<tr class="memdesc:acd8d5155cc7b38791698b4e89c6a96ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Settings of the flip method used by MIPI CSI cameras and compressed video inputs.  <a href="group__video.html#acd8d5155cc7b38791698b4e89c6a96ee">More...</a><br /></td></tr>
<tr class="separator:acd8d5155cc7b38791698b4e89c6a96ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99a95e988dcf46c0e9177abc7217cf8f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8f">Codec</a> { <br />
&#160;&#160;<a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8fa898a63d4293b84ad77a33ec6bbf89cfc">CODEC_UNKNOWN</a> = 0, 
<a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8fac342da52ac469a843986621ce83a1921">CODEC_RAW</a>, 
<a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8fa27ae05584e47d084cc6460d791b30f78">CODEC_H264</a>, 
<a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8facfa3344671dffa1e70bf03d5ee9e7e65">CODEC_H265</a>, 
<br />
&#160;&#160;<a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8fae1619f6db57624eed45c435ac03f17ae">CODEC_VP8</a>, 
<a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8face0bbd4b6d2c49e63551158e4fbbf890">CODEC_VP9</a>, 
<a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8fa53e71501c4c09e982d2348b84bf275a7">CODEC_MPEG2</a>, 
<a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8fac05b498eb8b7ba169a41317bcf54c21a">CODEC_MPEG4</a>, 
<br />
&#160;&#160;<a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8faa302ddcb4657d7ad35c682ba7b46a144">CODEC_MJPEG</a>
<br />
 }</td></tr>
<tr class="memdesc:a99a95e988dcf46c0e9177abc7217cf8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Video codecs.  <a href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8f">More...</a><br /></td></tr>
<tr class="separator:a99a95e988dcf46c0e9177abc7217cf8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e6a7e1158f7614ffdfcff4d58dcc3cc"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3cc">CodecType</a> { <br />
&#160;&#160;<a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3ccafda8fb863d44bf67b5d6084cbf8ebce8">CODEC_CPU</a> = 0, 
<a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3ccafe1b7ebe13fd053355893adf5f7d2e09">CODEC_OMX</a>, 
<a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3cca08adeb9d46e1aa75429b0a5f587e4c1f">CODEC_V4L2</a>, 
<a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3cca2115afb41442d5fd2eb71baa1d8165c6">CODEC_NVENC</a>, 
<br />
&#160;&#160;<a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3cca374b631d05eea07a6b3b2916e68d16e1">CODEC_NVDEC</a>
<br />
 }</td></tr>
<tr class="memdesc:a4e6a7e1158f7614ffdfcff4d58dcc3cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Video codec engines.  <a href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3cc">More...</a><br /></td></tr>
<tr class="separator:a4e6a7e1158f7614ffdfcff4d58dcc3cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Public Member Functions</h3></td></tr>
<tr class="memitem:afa1cc55ed3beeca6917d90607334079e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#afa1cc55ed3beeca6917d90607334079e">videoOptions</a> ()</td></tr>
<tr class="memdesc:afa1cc55ed3beeca6917d90607334079e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor using default options.  <a href="group__video.html#afa1cc55ed3beeca6917d90607334079e">More...</a><br /></td></tr>
<tr class="separator:afa1cc55ed3beeca6917d90607334079e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa69a63112b92c4e19a459427329ffd47"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#aa69a63112b92c4e19a459427329ffd47">Print</a> (const char *prefix=NULL) const</td></tr>
<tr class="memdesc:aa69a63112b92c4e19a459427329ffd47"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__log.html#classLog" title="Message logging with a variable level of output and destinations.">Log</a> the video settings, with an optional prefix label.  <a href="group__video.html#aa69a63112b92c4e19a459427329ffd47">More...</a><br /></td></tr>
<tr class="separator:aa69a63112b92c4e19a459427329ffd47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcf19f42775d50d404f8bb1fa3f98581"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#abcf19f42775d50d404f8bb1fa3f98581">Parse</a> (const char *<a class="el" href="group__video.html#structURI">URI</a>, const int argc, char **argv, <a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a> <a class="el" href="group__video.html#af48a7105c91b415ef158290be02f45e9">ioType</a>, const char *extraFlag=NULL)</td></tr>
<tr class="separator:abcf19f42775d50d404f8bb1fa3f98581"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1835d463a05df501c7b49e6c3498b3e9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a1835d463a05df501c7b49e6c3498b3e9">Parse</a> (const char *<a class="el" href="group__video.html#structURI">URI</a>, const <a class="el" href="group__commandLine.html#classcommandLine">commandLine</a> &amp;cmdLine, <a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a> <a class="el" href="group__video.html#af48a7105c91b415ef158290be02f45e9">ioType</a>)</td></tr>
<tr class="separator:a1835d463a05df501c7b49e6c3498b3e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fc92ca9ada75b62f9d899d1f9f60741"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a7fc92ca9ada75b62f9d899d1f9f60741">Parse</a> (const int argc, char **argv, <a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a> <a class="el" href="group__video.html#af48a7105c91b415ef158290be02f45e9">ioType</a>, int ioPositionArg=-1)</td></tr>
<tr class="separator:a7fc92ca9ada75b62f9d899d1f9f60741"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abafb7252c68d165e199597ec3cdea30b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#abafb7252c68d165e199597ec3cdea30b">Parse</a> (const <a class="el" href="group__commandLine.html#classcommandLine">commandLine</a> &amp;cmdLine, <a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a> <a class="el" href="group__video.html#af48a7105c91b415ef158290be02f45e9">ioType</a>, int ioPositionArg=-1)</td></tr>
<tr class="separator:abafb7252c68d165e199597ec3cdea30b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Static Public Member Functions</h3></td></tr>
<tr class="memitem:a095bf323f30f23060ce3adadfd9c0f2f"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a095bf323f30f23060ce3adadfd9c0f2f">IoTypeToStr</a> (<a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a> type)</td></tr>
<tr class="memdesc:a095bf323f30f23060ce3adadfd9c0f2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert an IoType enum to a string.  <a href="group__video.html#a095bf323f30f23060ce3adadfd9c0f2f">More...</a><br /></td></tr>
<tr class="separator:a095bf323f30f23060ce3adadfd9c0f2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af15495f79afce20edd2c12343c620073"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#af15495f79afce20edd2c12343c620073">IoTypeFromStr</a> (const char *str)</td></tr>
<tr class="memdesc:af15495f79afce20edd2c12343c620073"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse an IoType enum from a string.  <a href="group__video.html#af15495f79afce20edd2c12343c620073">More...</a><br /></td></tr>
<tr class="separator:af15495f79afce20edd2c12343c620073"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90479c2aaa46b180855e99be2497dbfc"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a90479c2aaa46b180855e99be2497dbfc">DeviceTypeToStr</a> (<a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36ed">DeviceType</a> type)</td></tr>
<tr class="memdesc:a90479c2aaa46b180855e99be2497dbfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a DeviceType enum to a string.  <a href="group__video.html#a90479c2aaa46b180855e99be2497dbfc">More...</a><br /></td></tr>
<tr class="separator:a90479c2aaa46b180855e99be2497dbfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a339d348d2b5262987e462f1d42fa4466"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36ed">DeviceType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a339d348d2b5262987e462f1d42fa4466">DeviceTypeFromStr</a> (const char *str)</td></tr>
<tr class="memdesc:a339d348d2b5262987e462f1d42fa4466"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a DeviceType enum from a string.  <a href="group__video.html#a339d348d2b5262987e462f1d42fa4466">More...</a><br /></td></tr>
<tr class="separator:a339d348d2b5262987e462f1d42fa4466"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e3de6bbada14e01a36905b8311ef235"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a7e3de6bbada14e01a36905b8311ef235">FlipMethodToStr</a> (<a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96ee">FlipMethod</a> flip)</td></tr>
<tr class="memdesc:a7e3de6bbada14e01a36905b8311ef235"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a FlipMethod enum to a string.  <a href="group__video.html#a7e3de6bbada14e01a36905b8311ef235">More...</a><br /></td></tr>
<tr class="separator:a7e3de6bbada14e01a36905b8311ef235"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8611c0e59fd292f23ca555f2b5ffd0aa"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96ee">FlipMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a8611c0e59fd292f23ca555f2b5ffd0aa">FlipMethodFromStr</a> (const char *str)</td></tr>
<tr class="memdesc:a8611c0e59fd292f23ca555f2b5ffd0aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a FlipMethod enum from a string.  <a href="group__video.html#a8611c0e59fd292f23ca555f2b5ffd0aa">More...</a><br /></td></tr>
<tr class="separator:a8611c0e59fd292f23ca555f2b5ffd0aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3c2c3c26b2352a4f883ba5628049a33"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#ae3c2c3c26b2352a4f883ba5628049a33">CodecToStr</a> (<a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8f">Codec</a> <a class="el" href="group__video.html#a7570676849d4971e061170b755f7cb71">codec</a>)</td></tr>
<tr class="memdesc:ae3c2c3c26b2352a4f883ba5628049a33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a Codec enum to a string.  <a href="group__video.html#ae3c2c3c26b2352a4f883ba5628049a33">More...</a><br /></td></tr>
<tr class="separator:ae3c2c3c26b2352a4f883ba5628049a33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9019047206c44b0bb55d120a9c8e8fc1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8f">Codec</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a9019047206c44b0bb55d120a9c8e8fc1">CodecFromStr</a> (const char *str)</td></tr>
<tr class="memdesc:a9019047206c44b0bb55d120a9c8e8fc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a Codec enum from a string.  <a href="group__video.html#a9019047206c44b0bb55d120a9c8e8fc1">More...</a><br /></td></tr>
<tr class="separator:a9019047206c44b0bb55d120a9c8e8fc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ef6979ad3f6f2113964765c95b5bf0b"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a3ef6979ad3f6f2113964765c95b5bf0b">CodecTypeToStr</a> (<a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3cc">CodecType</a> <a class="el" href="group__video.html#a780f3d2a953a013c031e4b54599313b6">codecType</a>)</td></tr>
<tr class="memdesc:a3ef6979ad3f6f2113964765c95b5bf0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a CodecType enum to a string.  <a href="group__video.html#a3ef6979ad3f6f2113964765c95b5bf0b">More...</a><br /></td></tr>
<tr class="separator:a3ef6979ad3f6f2113964765c95b5bf0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a5e8f314dce5f95b65efcf712757f98"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3cc">CodecType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a4a5e8f314dce5f95b65efcf712757f98">CodecTypeFromStr</a> (const char *str)</td></tr>
<tr class="memdesc:a4a5e8f314dce5f95b65efcf712757f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a Codec enum from a string.  <a href="group__video.html#a4a5e8f314dce5f95b65efcf712757f98">More...</a><br /></td></tr>
<tr class="separator:a4a5e8f314dce5f95b65efcf712757f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Public Attributes</h3></td></tr>
<tr class="memitem:a1e904a117abb3b703f01eaed7fa305f2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__video.html#structURI">URI</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a1e904a117abb3b703f01eaed7fa305f2">resource</a></td></tr>
<tr class="memdesc:a1e904a117abb3b703f01eaed7fa305f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> of the device, IP stream, or file/directory.  <a href="group__video.html#a1e904a117abb3b703f01eaed7fa305f2">More...</a><br /></td></tr>
<tr class="separator:a1e904a117abb3b703f01eaed7fa305f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f2128bc68ef2316b500da0d840e3942"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__video.html#structURI">URI</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a8f2128bc68ef2316b500da0d840e3942">save</a></td></tr>
<tr class="memdesc:a8f2128bc68ef2316b500da0d840e3942"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional path to save the compressed stream to a video file on disk, which is to be used in addition to the primary resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> above.  <a href="group__video.html#a8f2128bc68ef2316b500da0d840e3942">More...</a><br /></td></tr>
<tr class="separator:a8f2128bc68ef2316b500da0d840e3942"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c30587a874bb769d7b346ac00cff580"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a5c30587a874bb769d7b346ac00cff580">width</a></td></tr>
<tr class="memdesc:a5c30587a874bb769d7b346ac00cff580"><td class="mdescLeft">&#160;</td><td class="mdescRight">The width of the stream (in pixels).  <a href="group__video.html#a5c30587a874bb769d7b346ac00cff580">More...</a><br /></td></tr>
<tr class="separator:a5c30587a874bb769d7b346ac00cff580"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66660b049937fd088b5ab29a0aa2187c"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a66660b049937fd088b5ab29a0aa2187c">height</a></td></tr>
<tr class="memdesc:a66660b049937fd088b5ab29a0aa2187c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The height of the stream (in pixels).  <a href="group__video.html#a66660b049937fd088b5ab29a0aa2187c">More...</a><br /></td></tr>
<tr class="separator:a66660b049937fd088b5ab29a0aa2187c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85ceaa18c31e939f92da06027de8dedd"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a85ceaa18c31e939f92da06027de8dedd">frameRate</a></td></tr>
<tr class="memdesc:a85ceaa18c31e939f92da06027de8dedd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The framerate of the stream (the default is 30Hz).  <a href="group__video.html#a85ceaa18c31e939f92da06027de8dedd">More...</a><br /></td></tr>
<tr class="separator:a85ceaa18c31e939f92da06027de8dedd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69d5446579b0f133a7212afb81fc1a81"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a69d5446579b0f133a7212afb81fc1a81">frameCount</a></td></tr>
<tr class="memdesc:a69d5446579b0f133a7212afb81fc1a81"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of frames that have been captured or output on this interface.  <a href="group__video.html#a69d5446579b0f133a7212afb81fc1a81">More...</a><br /></td></tr>
<tr class="separator:a69d5446579b0f133a7212afb81fc1a81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec87b064f96732d6d1d8af49483673e6"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#aec87b064f96732d6d1d8af49483673e6">bitRate</a></td></tr>
<tr class="memdesc:aec87b064f96732d6d1d8af49483673e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The encoding bitrate for compressed streams (only applies to video codecs like H264/H265).  <a href="group__video.html#aec87b064f96732d6d1d8af49483673e6">More...</a><br /></td></tr>
<tr class="separator:aec87b064f96732d6d1d8af49483673e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65b80ddd3f3cf0940f18e365fb58270b"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a65b80ddd3f3cf0940f18e365fb58270b">numBuffers</a></td></tr>
<tr class="memdesc:a65b80ddd3f3cf0940f18e365fb58270b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of ring buffers used for threading.  <a href="group__video.html#a65b80ddd3f3cf0940f18e365fb58270b">More...</a><br /></td></tr>
<tr class="separator:a65b80ddd3f3cf0940f18e365fb58270b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afff91aa102908923622328e9f3ca3b83"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#afff91aa102908923622328e9f3ca3b83">zeroCopy</a></td></tr>
<tr class="memdesc:afff91aa102908923622328e9f3ca3b83"><td class="mdescLeft">&#160;</td><td class="mdescRight">If true, indicates the buffers are allocated in zeroCopy memory that is mapped to both the CPU and GPU.  <a href="group__video.html#afff91aa102908923622328e9f3ca3b83">More...</a><br /></td></tr>
<tr class="separator:afff91aa102908923622328e9f3ca3b83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8e394eb896dd92fd39c0946c10dd1ea"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#aa8e394eb896dd92fd39c0946c10dd1ea">loop</a></td></tr>
<tr class="memdesc:aa8e394eb896dd92fd39c0946c10dd1ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Control the number of loops for <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> disk-based inputs (for example, the number of times that a video should loop).  <a href="group__video.html#aa8e394eb896dd92fd39c0946c10dd1ea">More...</a><br /></td></tr>
<tr class="separator:aa8e394eb896dd92fd39c0946c10dd1ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fb6a10cf16e794e6025329e63f51294"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a4fb6a10cf16e794e6025329e63f51294">latency</a></td></tr>
<tr class="memdesc:a4fb6a10cf16e794e6025329e63f51294"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of milliseconds of video to buffer for network RTSP or WebRTC streams.  <a href="group__video.html#a4fb6a10cf16e794e6025329e63f51294">More...</a><br /></td></tr>
<tr class="separator:a4fb6a10cf16e794e6025329e63f51294"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63c0d583c059d4498ba885090dac062e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36ed">DeviceType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a63c0d583c059d4498ba885090dac062e">deviceType</a></td></tr>
<tr class="memdesc:a63c0d583c059d4498ba885090dac062e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates the type of device interface used by this stream.  <a href="group__video.html#a63c0d583c059d4498ba885090dac062e">More...</a><br /></td></tr>
<tr class="separator:a63c0d583c059d4498ba885090dac062e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af48a7105c91b415ef158290be02f45e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#af48a7105c91b415ef158290be02f45e9">ioType</a></td></tr>
<tr class="memdesc:af48a7105c91b415ef158290be02f45e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates if this stream is an input or an output.  <a href="group__video.html#af48a7105c91b415ef158290be02f45e9">More...</a><br /></td></tr>
<tr class="separator:af48a7105c91b415ef158290be02f45e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7af22e5cccd15cc2bdf14386f7f34d36"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96ee">FlipMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a7af22e5cccd15cc2bdf14386f7f34d36">flipMethod</a></td></tr>
<tr class="memdesc:a7af22e5cccd15cc2bdf14386f7f34d36"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flip method controls if and how an input frame is flipped/rotated in pre-processing from a MIPI CSI camera or compressed video input.  <a href="group__video.html#a7af22e5cccd15cc2bdf14386f7f34d36">More...</a><br /></td></tr>
<tr class="separator:a7af22e5cccd15cc2bdf14386f7f34d36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7570676849d4971e061170b755f7cb71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8f">Codec</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a7570676849d4971e061170b755f7cb71">codec</a></td></tr>
<tr class="memdesc:a7570676849d4971e061170b755f7cb71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates the codec used by the stream.  <a href="group__video.html#a7570676849d4971e061170b755f7cb71">More...</a><br /></td></tr>
<tr class="separator:a7570676849d4971e061170b755f7cb71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a780f3d2a953a013c031e4b54599313b6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3cc">CodecType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a780f3d2a953a013c031e4b54599313b6">codecType</a></td></tr>
<tr class="memdesc:a780f3d2a953a013c031e4b54599313b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates the underlying hardware/software engine used by the codec.  <a href="group__video.html#a780f3d2a953a013c031e4b54599313b6">More...</a><br /></td></tr>
<tr class="separator:a780f3d2a953a013c031e4b54599313b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c6f6313d185d475703557642b4f9a47"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a8c6f6313d185d475703557642b4f9a47">stunServer</a></td></tr>
<tr class="memdesc:a8c6f6313d185d475703557642b4f9a47"><td class="mdescLeft">&#160;</td><td class="mdescRight">URL of STUN server used for WebRTC.  <a href="group__video.html#a8c6f6313d185d475703557642b4f9a47">More...</a><br /></td></tr>
<tr class="separator:a8c6f6313d185d475703557642b4f9a47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a236086322dc1d853b29c1fa570c8723d"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a236086322dc1d853b29c1fa570c8723d">sslCert</a></td></tr>
<tr class="memdesc:a236086322dc1d853b29c1fa570c8723d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Path to a file containing a PEM-encoded SSL/TLS certificate.  <a href="group__video.html#a236086322dc1d853b29c1fa570c8723d">More...</a><br /></td></tr>
<tr class="separator:a236086322dc1d853b29c1fa570c8723d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc783d9782db081aa07af5f01e5c902c"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#abc783d9782db081aa07af5f01e5c902c">sslKey</a></td></tr>
<tr class="memdesc:abc783d9782db081aa07af5f01e5c902c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Path to a file containing a PEM-encoded private key.  <a href="group__video.html#abc783d9782db081aa07af5f01e5c902c">More...</a><br /></td></tr>
<tr class="separator:abc783d9782db081aa07af5f01e5c902c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Member Enumeration Documentation</h4>
<a id="a99a95e988dcf46c0e9177abc7217cf8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99a95e988dcf46c0e9177abc7217cf8f">&#9670;&nbsp;</a></span>Codec</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8f">videoOptions::Codec</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Video codecs. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a99a95e988dcf46c0e9177abc7217cf8fa898a63d4293b84ad77a33ec6bbf89cfc"></a>CODEC_UNKNOWN&#160;</td><td class="fielddoc"><p>Unknown/unsupported codec. </p>
</td></tr>
<tr><td class="fieldname"><a id="a99a95e988dcf46c0e9177abc7217cf8fac342da52ac469a843986621ce83a1921"></a>CODEC_RAW&#160;</td><td class="fielddoc"><p>Uncompressed (e.g. </p>
<p>RGB) </p>
</td></tr>
<tr><td class="fieldname"><a id="a99a95e988dcf46c0e9177abc7217cf8fa27ae05584e47d084cc6460d791b30f78"></a>CODEC_H264&#160;</td><td class="fielddoc"><p>H.264. </p>
</td></tr>
<tr><td class="fieldname"><a id="a99a95e988dcf46c0e9177abc7217cf8facfa3344671dffa1e70bf03d5ee9e7e65"></a>CODEC_H265&#160;</td><td class="fielddoc"><p>H.265. </p>
</td></tr>
<tr><td class="fieldname"><a id="a99a95e988dcf46c0e9177abc7217cf8fae1619f6db57624eed45c435ac03f17ae"></a>CODEC_VP8&#160;</td><td class="fielddoc"><p>VP8. </p>
</td></tr>
<tr><td class="fieldname"><a id="a99a95e988dcf46c0e9177abc7217cf8face0bbd4b6d2c49e63551158e4fbbf890"></a>CODEC_VP9&#160;</td><td class="fielddoc"><p>VP9. </p>
</td></tr>
<tr><td class="fieldname"><a id="a99a95e988dcf46c0e9177abc7217cf8fa53e71501c4c09e982d2348b84bf275a7"></a>CODEC_MPEG2&#160;</td><td class="fielddoc"><p>MPEG2 (decode only) </p>
</td></tr>
<tr><td class="fieldname"><a id="a99a95e988dcf46c0e9177abc7217cf8fac05b498eb8b7ba169a41317bcf54c21a"></a>CODEC_MPEG4&#160;</td><td class="fielddoc"><p>MPEG4 (decode only) </p>
</td></tr>
<tr><td class="fieldname"><a id="a99a95e988dcf46c0e9177abc7217cf8faa302ddcb4657d7ad35c682ba7b46a144"></a>CODEC_MJPEG&#160;</td><td class="fielddoc"><p>MJPEG. </p>
</td></tr>
</table>

</div>
</div>
<a id="a4e6a7e1158f7614ffdfcff4d58dcc3cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e6a7e1158f7614ffdfcff4d58dcc3cc">&#9670;&nbsp;</a></span>CodecType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3cc">videoOptions::CodecType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Video codec engines. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a4e6a7e1158f7614ffdfcff4d58dcc3ccafda8fb863d44bf67b5d6084cbf8ebce8"></a>CODEC_CPU&#160;</td><td class="fielddoc"><p>CPU-based implementation using libav (e.g. </p>
<p>avdec_h264 / x264enc) </p>
</td></tr>
<tr><td class="fieldname"><a id="a4e6a7e1158f7614ffdfcff4d58dcc3ccafe1b7ebe13fd053355893adf5f7d2e09"></a>CODEC_OMX&#160;</td><td class="fielddoc"><p>aarch64 &amp; JetPack 4 only - OMX hardware plugins (e.g. </p>
<p>omxh264dec/omxh264enc) </p>
</td></tr>
<tr><td class="fieldname"><a id="a4e6a7e1158f7614ffdfcff4d58dcc3cca08adeb9d46e1aa75429b0a5f587e4c1f"></a>CODEC_V4L2&#160;</td><td class="fielddoc"><p>aarch64 &amp; JetPack 5 only - V4L2 hardware plugins (e.g. </p>
<p>nvv4l2decoder/nvv4l2h264enc) </p>
</td></tr>
<tr><td class="fieldname"><a id="a4e6a7e1158f7614ffdfcff4d58dcc3cca2115afb41442d5fd2eb71baa1d8165c6"></a>CODEC_NVENC&#160;</td><td class="fielddoc"><p>x86 only - NVENC hardware plugin (not currently implemented) </p>
</td></tr>
<tr><td class="fieldname"><a id="a4e6a7e1158f7614ffdfcff4d58dcc3cca374b631d05eea07a6b3b2916e68d16e1"></a>CODEC_NVDEC&#160;</td><td class="fielddoc"><p>x86 only - NVDEC hardware plugin (not currently implemented) </p>
</td></tr>
</table>

</div>
</div>
<a id="a4065c77be7f3be75eddfc16b6efb36ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4065c77be7f3be75eddfc16b6efb36ed">&#9670;&nbsp;</a></span>DeviceType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36ed">videoOptions::DeviceType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Device interface types. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a4065c77be7f3be75eddfc16b6efb36edabf0f857ba260214fa9fbeda070cf739c"></a>DEVICE_DEFAULT&#160;</td><td class="fielddoc"><p>Unknown interface type. </p>
</td></tr>
<tr><td class="fieldname"><a id="a4065c77be7f3be75eddfc16b6efb36edac77f0e925955b23e5e4c0bd33b58c40e"></a>DEVICE_V4L2&#160;</td><td class="fielddoc"><p>V4L2 webcam (e.g. </p>
<p><code>/dev/video0</code>) </p>
</td></tr>
<tr><td class="fieldname"><a id="a4065c77be7f3be75eddfc16b6efb36edad4837999d7b7dbe4b83fc405792fd597"></a>DEVICE_CSI&#160;</td><td class="fielddoc"><p>MIPI CSI camera. </p>
</td></tr>
<tr><td class="fieldname"><a id="a4065c77be7f3be75eddfc16b6efb36eda13cb55a7a6d78170f4804dd342b3fc0a"></a>DEVICE_IP&#160;</td><td class="fielddoc"><p>IP-based network stream (e.g. </p>
<p>RTP/RTSP) </p>
</td></tr>
<tr><td class="fieldname"><a id="a4065c77be7f3be75eddfc16b6efb36eda14ace01196686e68ba5f6def69f44886"></a>DEVICE_FILE&#160;</td><td class="fielddoc"><p>Disk-based stream from a file or directory of files. </p>
</td></tr>
<tr><td class="fieldname"><a id="a4065c77be7f3be75eddfc16b6efb36eda54f0567fd7cf91c40b5e4f13e874da79"></a>DEVICE_DISPLAY&#160;</td><td class="fielddoc"><p>OpenGL output stream rendered to an attached display. </p>
</td></tr>
</table>

</div>
</div>
<a id="acd8d5155cc7b38791698b4e89c6a96ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd8d5155cc7b38791698b4e89c6a96ee">&#9670;&nbsp;</a></span>FlipMethod</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96ee">videoOptions::FlipMethod</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Settings of the flip method used by MIPI CSI cameras and compressed video inputs. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="acd8d5155cc7b38791698b4e89c6a96eea7c09134804adf49ef07558b78d17f031"></a>FLIP_NONE&#160;</td><td class="fielddoc"><p>Identity (no rotation) </p>
</td></tr>
<tr><td class="fieldname"><a id="acd8d5155cc7b38791698b4e89c6a96eea7e8abbc09244387c1f4607c902976b22"></a>FLIP_COUNTERCLOCKWISE&#160;</td><td class="fielddoc"><p>Rotate counter-clockwise 90 degrees. </p>
</td></tr>
<tr><td class="fieldname"><a id="acd8d5155cc7b38791698b4e89c6a96eeac748895a98407e5dde91b9013611cf19"></a>FLIP_ROTATE_180&#160;</td><td class="fielddoc"><p>Rotate 180 degrees. </p>
</td></tr>
<tr><td class="fieldname"><a id="acd8d5155cc7b38791698b4e89c6a96eeac19ebe40943991cf5e9fcb69e6c5c3e5"></a>FLIP_CLOCKWISE&#160;</td><td class="fielddoc"><p>Rotate clockwise 90 degrees. </p>
</td></tr>
<tr><td class="fieldname"><a id="acd8d5155cc7b38791698b4e89c6a96eea5d3fdf02e598b86b148161ca516d5162"></a>FLIP_HORIZONTAL&#160;</td><td class="fielddoc"><p>Flip horizontally. </p>
</td></tr>
<tr><td class="fieldname"><a id="acd8d5155cc7b38791698b4e89c6a96eea42d69b4a7eed239acb174789ce6e22e4"></a>FLIP_UPPER_RIGHT_DIAGONAL&#160;</td><td class="fielddoc"><p>Flip across upper right/lower left diagonal. </p>
</td></tr>
<tr><td class="fieldname"><a id="acd8d5155cc7b38791698b4e89c6a96eea4e10ce85a7798075172005bb720912f3"></a>FLIP_VERTICAL&#160;</td><td class="fielddoc"><p>Flip vertically. </p>
</td></tr>
<tr><td class="fieldname"><a id="acd8d5155cc7b38791698b4e89c6a96eea089c5073db1bcb4b658be055abdfe9eb"></a>FLIP_UPPER_LEFT_DIAGONAL&#160;</td><td class="fielddoc"><p>Flip across upper left/lower right diagonal. </p>
</td></tr>
<tr><td class="fieldname"><a id="acd8d5155cc7b38791698b4e89c6a96eeae1237dbae8c7847640966457de536a96"></a>FLIP_DEFAULT&#160;</td><td class="fielddoc"><p>Default setting (none) </p>
</td></tr>
</table>

</div>
</div>
<a id="a7f7ae50399192afba10ee226310878b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f7ae50399192afba10ee226310878b8">&#9670;&nbsp;</a></span>IoType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">videoOptions::IoType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Input/Output stream type. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a7f7ae50399192afba10ee226310878b8a75394f2114da6d4d1a690891f70a8b0c"></a>INPUT&#160;</td><td class="fielddoc"><p>Input stream (e.g. </p>
<p>camera, video/image file, ect.) </p>
</td></tr>
<tr><td class="fieldname"><a id="a7f7ae50399192afba10ee226310878b8a054b71f306226210b98344694784699d"></a>OUTPUT&#160;</td><td class="fielddoc"><p>Output stream (e.g. </p>
<p>display, video/image file, ect.) </p>
</td></tr>
</table>

</div>
</div>
<h4 class="groupheader">Constructor &amp; Destructor Documentation</h4>
<a id="afa1cc55ed3beeca6917d90607334079e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa1cc55ed3beeca6917d90607334079e">&#9670;&nbsp;</a></span>videoOptions()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">videoOptions::videoOptions </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor using default options. </p>

</div>
</div>
<h4 class="groupheader">Member Function Documentation</h4>
<a id="a9019047206c44b0bb55d120a9c8e8fc1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9019047206c44b0bb55d120a9c8e8fc1">&#9670;&nbsp;</a></span>CodecFromStr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8f">Codec</a> videoOptions::CodecFromStr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Parse a Codec enum from a string. </p>

</div>
</div>
<a id="ae3c2c3c26b2352a4f883ba5628049a33"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3c2c3c26b2352a4f883ba5628049a33">&#9670;&nbsp;</a></span>CodecToStr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* videoOptions::CodecToStr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8f">Codec</a>&#160;</td>
          <td class="paramname"><em>codec</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert a Codec enum to a string. </p>

</div>
</div>
<a id="a4a5e8f314dce5f95b65efcf712757f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a5e8f314dce5f95b65efcf712757f98">&#9670;&nbsp;</a></span>CodecTypeFromStr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3cc">CodecType</a> videoOptions::CodecTypeFromStr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Parse a Codec enum from a string. </p>

</div>
</div>
<a id="a3ef6979ad3f6f2113964765c95b5bf0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ef6979ad3f6f2113964765c95b5bf0b">&#9670;&nbsp;</a></span>CodecTypeToStr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* videoOptions::CodecTypeToStr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3cc">CodecType</a>&#160;</td>
          <td class="paramname"><em>codecType</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert a CodecType enum to a string. </p>

</div>
</div>
<a id="a339d348d2b5262987e462f1d42fa4466"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a339d348d2b5262987e462f1d42fa4466">&#9670;&nbsp;</a></span>DeviceTypeFromStr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36ed">DeviceType</a> videoOptions::DeviceTypeFromStr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Parse a DeviceType enum from a string. </p>

</div>
</div>
<a id="a90479c2aaa46b180855e99be2497dbfc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90479c2aaa46b180855e99be2497dbfc">&#9670;&nbsp;</a></span>DeviceTypeToStr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* videoOptions::DeviceTypeToStr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36ed">DeviceType</a>&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert a DeviceType enum to a string. </p>

</div>
</div>
<a id="a8611c0e59fd292f23ca555f2b5ffd0aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8611c0e59fd292f23ca555f2b5ffd0aa">&#9670;&nbsp;</a></span>FlipMethodFromStr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96ee">FlipMethod</a> videoOptions::FlipMethodFromStr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Parse a FlipMethod enum from a string. </p>

</div>
</div>
<a id="a7e3de6bbada14e01a36905b8311ef235"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e3de6bbada14e01a36905b8311ef235">&#9670;&nbsp;</a></span>FlipMethodToStr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* videoOptions::FlipMethodToStr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96ee">FlipMethod</a>&#160;</td>
          <td class="paramname"><em>flip</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert a FlipMethod enum to a string. </p>

</div>
</div>
<a id="af15495f79afce20edd2c12343c620073"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af15495f79afce20edd2c12343c620073">&#9670;&nbsp;</a></span>IoTypeFromStr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a> videoOptions::IoTypeFromStr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Parse an IoType enum from a string. </p>

</div>
</div>
<a id="a095bf323f30f23060ce3adadfd9c0f2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a095bf323f30f23060ce3adadfd9c0f2f">&#9670;&nbsp;</a></span>IoTypeToStr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* videoOptions::IoTypeToStr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a>&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert an IoType enum to a string. </p>

</div>
</div>
<a id="a1835d463a05df501c7b49e6c3498b3e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1835d463a05df501c7b49e6c3498b3e9">&#9670;&nbsp;</a></span>Parse() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOptions::Parse </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>URI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__commandLine.html#classcommandLine">commandLine</a> &amp;&#160;</td>
          <td class="paramname"><em>cmdLine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a>&#160;</td>
          <td class="paramname"><em>ioType</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="abcf19f42775d50d404f8bb1fa3f98581"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abcf19f42775d50d404f8bb1fa3f98581">&#9670;&nbsp;</a></span>Parse() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOptions::Parse </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>URI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a>&#160;</td>
          <td class="paramname"><em>ioType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>extraFlag</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="abafb7252c68d165e199597ec3cdea30b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abafb7252c68d165e199597ec3cdea30b">&#9670;&nbsp;</a></span>Parse() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOptions::Parse </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__commandLine.html#classcommandLine">commandLine</a> &amp;&#160;</td>
          <td class="paramname"><em>cmdLine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a>&#160;</td>
          <td class="paramname"><em>ioType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ioPositionArg</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a7fc92ca9ada75b62f9d899d1f9f60741"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7fc92ca9ada75b62f9d899d1f9f60741">&#9670;&nbsp;</a></span>Parse() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOptions::Parse </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a>&#160;</td>
          <td class="paramname"><em>ioType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ioPositionArg</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aa69a63112b92c4e19a459427329ffd47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa69a63112b92c4e19a459427329ffd47">&#9670;&nbsp;</a></span>Print()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void videoOptions::Print </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>prefix</em> = <code>NULL</code></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="group__log.html#classLog" title="Message logging with a variable level of output and destinations.">Log</a> the video settings, with an optional prefix label. </p>

</div>
</div>
<h4 class="groupheader">Member Data Documentation</h4>
<a id="aec87b064f96732d6d1d8af49483673e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec87b064f96732d6d1d8af49483673e6">&#9670;&nbsp;</a></span>bitRate</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoOptions::bitRate</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The encoding bitrate for compressed streams (only applies to video codecs like H264/H265). </p>
<p>For <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> streams, this option can be set from the command line using <code>--bitrate=N</code>. </p><dl class="section note"><dt>Note</dt><dd>the default bitrate for encoding output streams is 4Mbps (target VBR). </dd></dl>

</div>
</div>
<a id="a7570676849d4971e061170b755f7cb71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7570676849d4971e061170b755f7cb71">&#9670;&nbsp;</a></span>codec</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__video.html#a99a95e988dcf46c0e9177abc7217cf8f">Codec</a> videoOptions::codec</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates the codec used by the stream. </p>
<p>This is only really applicable to compressed streams, otherwise it will be <code>CODEC_RAW</code>.</p>
<p><a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> input streams will attempt to discover the codec type (i.e. from video file), however RTP streams need this to be explitly set using the <code>--input-codec=xyz</code> option (where <code>xyz</code> is a string like <code>h264</code>, <code>h265</code>, <code>vp8</code>, <code>vp9</code>, <code>mpeg2</code>, <code>mpeg4</code>, or <code>mjpeg</code>).</p>
<p>A compressed <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> stream will default to H.264 encoding, but can be set using the <code>--output-codec=xyz</code> command line option (same values for <code>xyz</code> as above). </p>

</div>
</div>
<a id="a780f3d2a953a013c031e4b54599313b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a780f3d2a953a013c031e4b54599313b6">&#9670;&nbsp;</a></span>codecType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__video.html#a4e6a7e1158f7614ffdfcff4d58dcc3cc">CodecType</a> videoOptions::codecType</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates the underlying hardware/software engine used by the codec. </p>
<p>For input streams, this can be set with <code>--decode=cpu</code> or <code>--decode=v4l2</code> for example. For output streams, this can be set with <code>--encode=cpu</code> or <code>--encode=v4l2</code> for example. The default setting is to use hardware-acceleration on Jetson (aarch64) and CPU on x86. </p>

</div>
</div>
<a id="a63c0d583c059d4498ba885090dac062e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63c0d583c059d4498ba885090dac062e">&#9670;&nbsp;</a></span>deviceType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__video.html#a4065c77be7f3be75eddfc16b6efb36ed">DeviceType</a> videoOptions::deviceType</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates the type of device interface used by this stream. </p>

</div>
</div>
<a id="a7af22e5cccd15cc2bdf14386f7f34d36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7af22e5cccd15cc2bdf14386f7f34d36">&#9670;&nbsp;</a></span>flipMethod</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__video.html#acd8d5155cc7b38791698b4e89c6a96ee">FlipMethod</a> videoOptions::flipMethod</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The flip method controls if and how an input frame is flipped/rotated in pre-processing from a MIPI CSI camera or compressed video input. </p>
<p>Other types of streams will ignore this.</p>
<p>This option can be set from the command line using <code>--flip-method=xyz</code>, where <code>xyz</code> is one of the strings below:</p>
<ul>
<li><code>none</code> (Identity, no rotation)</li>
<li><code>counterclockwise</code> (Rotate counter-clockwise 90 degrees)</li>
<li><code>rotate-180</code> (Rotate 180 degrees)</li>
<li><code>clockwise</code> (Rotate clockwise 90 degrees)</li>
<li><code>horizontal-flip</code> (Flip horizontally)</li>
<li><code>vertical-flip</code> (Flip vertically)</li>
<li><code>upper-right-diagonal</code> (Flip across upper right/lower left diagonal)</li>
<li><code>upper-left-diagonal</code> (Flip across upper left/lower right diagonal) </li>
</ul>

</div>
</div>
<a id="a69d5446579b0f133a7212afb81fc1a81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69d5446579b0f133a7212afb81fc1a81">&#9670;&nbsp;</a></span>frameCount</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t videoOptions::frameCount</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The number of frames that have been captured or output on this interface. </p>

</div>
</div>
<a id="a85ceaa18c31e939f92da06027de8dedd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85ceaa18c31e939f92da06027de8dedd">&#9670;&nbsp;</a></span>frameRate</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float videoOptions::frameRate</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The framerate of the stream (the default is 30Hz). </p>
<p>This option can be set from the command line using <code>--input-rate=N</code> or <code>--output-rate=N</code> for input and output streams, respectively. The <code>--framerate=N</code> option sets it for both. </p>

</div>
</div>
<a id="a66660b049937fd088b5ab29a0aa2187c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66660b049937fd088b5ab29a0aa2187c">&#9670;&nbsp;</a></span>height</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoOptions::height</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The height of the stream (in pixels). </p>
<p>This option can be set from the command line using <code>--input-height=N</code> for <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> streams, or <code>--output-height=N</code> for <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> streams. </p>

</div>
</div>
<a id="af48a7105c91b415ef158290be02f45e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af48a7105c91b415ef158290be02f45e9">&#9670;&nbsp;</a></span>ioType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__video.html#a7f7ae50399192afba10ee226310878b8">IoType</a> videoOptions::ioType</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates if this stream is an input or an output. </p>

</div>
</div>
<a id="a4fb6a10cf16e794e6025329e63f51294"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4fb6a10cf16e794e6025329e63f51294">&#9670;&nbsp;</a></span>latency</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int videoOptions::latency</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Number of milliseconds of video to buffer for network RTSP or WebRTC streams. </p>
<p>The default setting is 10ms (which is lower than GStreamer's default settings). If you have connection/buffering problems, try increasing the latency setting. It can be set from the command line using <code>--input-latency=N</code> or <code>--output-latency=N</code> </p>

</div>
</div>
<a id="aa8e394eb896dd92fd39c0946c10dd1ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8e394eb896dd92fd39c0946c10dd1ea">&#9670;&nbsp;</a></span>loop</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int videoOptions::loop</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Control the number of loops for <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> disk-based inputs (for example, the number of times that a video should loop). </p>
<p>Other types of streams will ignore it.</p>
<p>The following values are are valid:</p>
<p>-1 = loop forever 0 = don't loop &gt;0 = set number of loops</p>
<p>This option can be set from the command line using <code>--loop=N</code>. </p><dl class="section note"><dt>Note</dt><dd>by default, looping is disabled (set to <code>0</code>). </dd></dl>

</div>
</div>
<a id="a65b80ddd3f3cf0940f18e365fb58270b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65b80ddd3f3cf0940f18e365fb58270b">&#9670;&nbsp;</a></span>numBuffers</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoOptions::numBuffers</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The number of ring buffers used for threading. </p>
<p>This option can be set from the command line using <code>--num-buffers=N</code>. </p><dl class="section note"><dt>Note</dt><dd>the default number of ring buffers is 4. </dd></dl>

</div>
</div>
<a id="a1e904a117abb3b703f01eaed7fa305f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e904a117abb3b703f01eaed7fa305f2">&#9670;&nbsp;</a></span>resource</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__video.html#structURI">URI</a> videoOptions::resource</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> of the device, IP stream, or file/directory. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> for details about accepted protocols and <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> formats. </dd></dl>

</div>
</div>
<a id="a8f2128bc68ef2316b500da0d840e3942"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f2128bc68ef2316b500da0d840e3942">&#9670;&nbsp;</a></span>save</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__video.html#structURI">URI</a> videoOptions::save</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Optional path to save the compressed stream to a video file on disk, which is to be used in addition to the primary resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> above. </p>
<p>This option can be set from the command-line using <code>--input-save</code> for <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> streams, or <code>--output-save</code> for <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> streams. </p>

</div>
</div>
<a id="a236086322dc1d853b29c1fa570c8723d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a236086322dc1d853b29c1fa570c8723d">&#9670;&nbsp;</a></span>sslCert</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string videoOptions::sslCert</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Path to a file containing a PEM-encoded SSL/TLS certificate. </p>
<p>This is used for enabling HTTPS in the WebRTC server. It can be set from the command-line using the <code>--ssl-cert</code> or <code>--https-cert</code> options. You can make your own self-signed certificate by running a command like: <code>openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365</code> </p>

</div>
</div>
<a id="abc783d9782db081aa07af5f01e5c902c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc783d9782db081aa07af5f01e5c902c">&#9670;&nbsp;</a></span>sslKey</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string videoOptions::sslKey</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Path to a file containing a PEM-encoded private key. </p>
<p>This is used for enabling HTTPS in the WebRTC server. It can be set from the command-line using the <code>--ssl-key</code> or <code>--https-key</code> options. You can make your own self-signed certificate by running a command like: <code>openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365</code> </p>

</div>
</div>
<a id="a8c6f6313d185d475703557642b4f9a47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c6f6313d185d475703557642b4f9a47">&#9670;&nbsp;</a></span>stunServer</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string videoOptions::stunServer</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>URL of STUN server used for WebRTC. </p>
<p>This can be set using the <code>--stun-server</code> command-line argument. STUN servers are used during ICE/NAT and allow a local device to determine its public IP address. If this is left blank and WebRTC is used, then a default STUN server will be assigned. </p>

</div>
</div>
<a id="a5c30587a874bb769d7b346ac00cff580"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c30587a874bb769d7b346ac00cff580">&#9670;&nbsp;</a></span>width</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoOptions::width</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The width of the stream (in pixels). </p>
<p>This option can be set from the command line using <code>--input-width=N</code> for <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> streams, or <code>--output-width=N</code> for <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> streams. </p>

</div>
</div>
<a id="afff91aa102908923622328e9f3ca3b83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afff91aa102908923622328e9f3ca3b83">&#9670;&nbsp;</a></span>zeroCopy</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOptions::zeroCopy</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>If true, indicates the buffers are allocated in zeroCopy memory that is mapped to both the CPU and GPU. </p>
<p>Otherwise, the buffers are only accessible from the GPU. </p><dl class="section note"><dt>Note</dt><dd>the default is true (zeroCopy CPU/GPU access enabled). </dd></dl>

</div>
</div>

</div>
</div>
<a name="classvideoOutput" id="classvideoOutput"></a>
<h2 class="memtitle"><span class="permalink"><a href="#classvideoOutput">&#9670;&nbsp;</a></span>videoOutput</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">class videoOutput</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>The <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> API is for rendering and transmitting frames to video input devices such as display windows, broadcasting RTP network streams to remote hosts over UDP/IP, and saving videos/images/directories to disk. </p>
<p><a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interfaces are implemented by <a class="el" href="group__OpenGL.html#classglDisplay" title="OpenGL display window and image/video renderer with CUDA interoperability.">glDisplay</a>, <a class="el" href="group__codec.html#classgstEncoder" title="Hardware-accelerated video encoder for Jetson using GStreamer.">gstEncoder</a>, and <a class="el" href="group__image.html#classimageWriter" title="Save an image or set of images to disk.">imageWriter</a>. <br  />
 The specific implementation is selected at runtime based on the type of resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>. An instance can have multiple sub-streams, for example simultaneously outputting to a display and encoded video on disk or RTP stream.</p>
<p><a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> supports the following protocols and resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s: </p><pre class="fragment">- `display://0` for rendering to display using OpenGL, where `0` corresponds to the display number.
   By default, an OpenGL window will be created, unless the `--headless` command line option is used.

- `rtp://&lt;remote-host&gt;:1234` to broadcast a compressed RTP stream to a remote host, where you should
   substitute `&lt;remote-host&gt;` with the remote host's IP address or hostname, and `1234` is the port.

- `rtsp://@:8554/my_stream` to serve a compressed RTSP stream at the specified port and stream path.
   RTSP clients can connect to the stream at the specified path.  Using this will create a RTSP server
   that can handle multiple videoOutput streams on the same port but with different paths
   (e.g. `rtsp://&lt;hostname&gt;:8554/my_stream_1`, `rtsp://&lt;hostname&gt;:8554/my_stream_2`, ect)

- `webrtc://@:1234/my_stream` to serve a compressed WebRTC stream at the specified port and path
   that browsers can connect to and view.  Users will be able to navigate their browser to
   `http://&lt;hostname&gt;:1234/my_stream` and view a rudimentary video player that plays the stream.
   More advanced web front-ends can be created by using standard client-side Javascript WebRTC APIs.

- `file:///home/user/my_video.mp4` for saving videos, images, and directories of images to disk.
   You can leave off the `file://` protocol identifier and it will be deduced from the path.
   It can be a relative or absolute path.  You can output a sequence of images using a path of
   the form `my_dir/image_%i.jpg` (where `%i` can include printf-style modifiers like `%03i`).  
   The `%i` will be replaced with the image number in the sequence.  If just a directory is
   specified, then by default it will create a sequence of the form `%i.jpg` in that directory.
   Supported video formats for saving include MKV, MP4, AVI, and FLV. Supported codecs for 
   encoding include H.264, H.265, VP8, VP9, and MJPEG. Supported image formats for saving 
   include JPG, PNG, TGA, and BMP.
</pre><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> for info about resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> formats. </dd>
<dd>
<a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for additional options and command-line arguments. </dd></dl>
</div><div class="dynheader">
Inheritance diagram for videoOutput:</div>
<div class="dyncontent">
 <div class="center">
  <img src="group__video.png" usemap="#videoOutput_map" alt=""/>
  <map id="videoOutput_map" name="videoOutput_map">
<area href="group__OpenGL.html#classglDisplay" title="OpenGL display window and image/video renderer with CUDA interoperability." alt="glDisplay" shape="rect" coords="0,56,80,80"/>
<area href="group__codec.html#classgstEncoder" title="Hardware-accelerated video encoder for Jetson using GStreamer." alt="gstEncoder" shape="rect" coords="90,56,170,80"/>
<area href="group__image.html#classimageWriter" title="Save an image or set of images to disk." alt="imageWriter" shape="rect" coords="180,56,260,80"/>
  </map>
</div></div>
<table class="memberdecls">
<tr><td colspan="2"><h3>Public Member Functions</h3></td></tr>
<tr class="memitem:a2186412156484860e31d827c10becf96"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a2186412156484860e31d827c10becf96">~videoOutput</a> ()</td></tr>
<tr class="memdesc:a2186412156484860e31d827c10becf96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy interface and release all resources.  <a href="group__video.html#a2186412156484860e31d827c10becf96">More...</a><br /></td></tr>
<tr class="separator:a2186412156484860e31d827c10becf96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac63d627d52174400c01c28bb0de82993"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac63d627d52174400c01c28bb0de82993"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__video.html#ac63d627d52174400c01c28bb0de82993">Render</a> (T *image, uint32_t width, uint32_t height)</td></tr>
<tr class="memdesc:ac63d627d52174400c01c28bb0de82993"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render and output the next frame to the stream.  <a href="group__video.html#ac63d627d52174400c01c28bb0de82993">More...</a><br /></td></tr>
<tr class="separator:ac63d627d52174400c01c28bb0de82993"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e53017c0e49212405391f82fbac876f"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a8e53017c0e49212405391f82fbac876f">Render</a> (void *image, uint32_t width, uint32_t height, <a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406">imageFormat</a> format)</td></tr>
<tr class="memdesc:a8e53017c0e49212405391f82fbac876f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render and output the next frame to the stream.  <a href="group__video.html#a8e53017c0e49212405391f82fbac876f">More...</a><br /></td></tr>
<tr class="separator:a8e53017c0e49212405391f82fbac876f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58d163c8d3e54f336bf2dda4a759750e"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a58d163c8d3e54f336bf2dda4a759750e">Open</a> ()</td></tr>
<tr class="memdesc:a58d163c8d3e54f336bf2dda4a759750e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begin streaming the device.  <a href="group__video.html#a58d163c8d3e54f336bf2dda4a759750e">More...</a><br /></td></tr>
<tr class="separator:a58d163c8d3e54f336bf2dda4a759750e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a552252a397249335e77755e0b911225e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a552252a397249335e77755e0b911225e">Close</a> ()</td></tr>
<tr class="memdesc:a552252a397249335e77755e0b911225e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop streaming the device.  <a href="group__video.html#a552252a397249335e77755e0b911225e">More...</a><br /></td></tr>
<tr class="separator:a552252a397249335e77755e0b911225e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a3cf8d6230e26e27c5d22b29a150bdc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a2a3cf8d6230e26e27c5d22b29a150bdc">IsStreaming</a> () const</td></tr>
<tr class="memdesc:a2a3cf8d6230e26e27c5d22b29a150bdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the device is actively streaming or not.  <a href="group__video.html#a2a3cf8d6230e26e27c5d22b29a150bdc">More...</a><br /></td></tr>
<tr class="separator:a2a3cf8d6230e26e27c5d22b29a150bdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaba8521f7ff078293ee4052a28ee71c"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#afaba8521f7ff078293ee4052a28ee71c">GetWidth</a> () const</td></tr>
<tr class="memdesc:afaba8521f7ff078293ee4052a28ee71c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the width of the stream, in pixels.  <a href="group__video.html#afaba8521f7ff078293ee4052a28ee71c">More...</a><br /></td></tr>
<tr class="separator:afaba8521f7ff078293ee4052a28ee71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa225fb199069cf2a4b30f467e237da73"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#aa225fb199069cf2a4b30f467e237da73">GetHeight</a> () const</td></tr>
<tr class="memdesc:aa225fb199069cf2a4b30f467e237da73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the height of the stream, in pixels.  <a href="group__video.html#aa225fb199069cf2a4b30f467e237da73">More...</a><br /></td></tr>
<tr class="separator:aa225fb199069cf2a4b30f467e237da73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26c37f79e965f1b9741b4d9b3923bd6b"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a26c37f79e965f1b9741b4d9b3923bd6b">GetFrameRate</a> () const</td></tr>
<tr class="memdesc:a26c37f79e965f1b9741b4d9b3923bd6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the framerate, in Hz or FPS.  <a href="group__video.html#a26c37f79e965f1b9741b4d9b3923bd6b">More...</a><br /></td></tr>
<tr class="separator:a26c37f79e965f1b9741b4d9b3923bd6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab38d8fb1ad7855cf428d9f8cf5806bb4"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#ab38d8fb1ad7855cf428d9f8cf5806bb4">GetFrameCount</a> () const</td></tr>
<tr class="memdesc:ab38d8fb1ad7855cf428d9f8cf5806bb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of frames output.  <a href="group__video.html#ab38d8fb1ad7855cf428d9f8cf5806bb4">More...</a><br /></td></tr>
<tr class="separator:ab38d8fb1ad7855cf428d9f8cf5806bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47edea2ad237e50cfbd6d0a192280ee5"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="group__video.html#structURI">URI</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a47edea2ad237e50cfbd6d0a192280ee5">GetResource</a> () const</td></tr>
<tr class="memdesc:a47edea2ad237e50cfbd6d0a192280ee5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> of the stream.  <a href="group__video.html#a47edea2ad237e50cfbd6d0a192280ee5">More...</a><br /></td></tr>
<tr class="separator:a47edea2ad237e50cfbd6d0a192280ee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59f21f27a0efe56541fbe15f1d5f46ce"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a59f21f27a0efe56541fbe15f1d5f46ce">GetOptions</a> () const</td></tr>
<tr class="memdesc:a59f21f27a0efe56541fbe15f1d5f46ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> of the stream.  <a href="group__video.html#a59f21f27a0efe56541fbe15f1d5f46ce">More...</a><br /></td></tr>
<tr class="separator:a59f21f27a0efe56541fbe15f1d5f46ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2da4bab42fbd19a851e205647443ea5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#ad2da4bab42fbd19a851e205647443ea5">AddOutput</a> (<a class="el" href="group__video.html#classvideoOutput">videoOutput</a> *output)</td></tr>
<tr class="memdesc:ad2da4bab42fbd19a851e205647443ea5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an output sub-stream.  <a href="group__video.html#ad2da4bab42fbd19a851e205647443ea5">More...</a><br /></td></tr>
<tr class="separator:ad2da4bab42fbd19a851e205647443ea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc630f31a8d55dc852ac1e01c1f7dc58"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#adc630f31a8d55dc852ac1e01c1f7dc58">GetNumOutputs</a> () const</td></tr>
<tr class="memdesc:adc630f31a8d55dc852ac1e01c1f7dc58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of sub-streams.  <a href="group__video.html#adc630f31a8d55dc852ac1e01c1f7dc58">More...</a><br /></td></tr>
<tr class="separator:adc630f31a8d55dc852ac1e01c1f7dc58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1a64933421c48f1af63ea12a8217421"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__video.html#classvideoOutput">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#aa1a64933421c48f1af63ea12a8217421">GetOutput</a> (uint32_t index) const</td></tr>
<tr class="memdesc:aa1a64933421c48f1af63ea12a8217421"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a sub-stream.  <a href="group__video.html#aa1a64933421c48f1af63ea12a8217421">More...</a><br /></td></tr>
<tr class="separator:aa1a64933421c48f1af63ea12a8217421"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7968711adc8814a9ec4e127e7b3a8bb2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a7968711adc8814a9ec4e127e7b3a8bb2">SetStatus</a> (const char *str)</td></tr>
<tr class="memdesc:a7968711adc8814a9ec4e127e7b3a8bb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a status string (i.e.  <a href="group__video.html#a7968711adc8814a9ec4e127e7b3a8bb2">More...</a><br /></td></tr>
<tr class="separator:a7968711adc8814a9ec4e127e7b3a8bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaedce68dfff9bd5c3e76c32468632512"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#aaedce68dfff9bd5c3e76c32468632512">GetType</a> () const</td></tr>
<tr class="memdesc:aaedce68dfff9bd5c3e76c32468632512"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the interface type of the stream.  <a href="group__video.html#aaedce68dfff9bd5c3e76c32468632512">More...</a><br /></td></tr>
<tr class="separator:aaedce68dfff9bd5c3e76c32468632512"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a3ed32e27da1e996dc21c0339dc5a95"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a0a3ed32e27da1e996dc21c0339dc5a95">IsType</a> (uint32_t type) const</td></tr>
<tr class="memdesc:a0a3ed32e27da1e996dc21c0339dc5a95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if this stream is of a particular type.  <a href="group__video.html#a0a3ed32e27da1e996dc21c0339dc5a95">More...</a><br /></td></tr>
<tr class="separator:a0a3ed32e27da1e996dc21c0339dc5a95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5463fc78e3d259fa18ea2e6349e21c8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aa5463fc78e3d259fa18ea2e6349e21c8"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__video.html#aa5463fc78e3d259fa18ea2e6349e21c8">IsType</a> () const</td></tr>
<tr class="memdesc:aa5463fc78e3d259fa18ea2e6349e21c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a this stream is of a particular type.  <a href="group__video.html#aa5463fc78e3d259fa18ea2e6349e21c8">More...</a><br /></td></tr>
<tr class="separator:aa5463fc78e3d259fa18ea2e6349e21c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a6c66bde88abdfa857bc9715acb8314"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a5a6c66bde88abdfa857bc9715acb8314">TypeToStr</a> () const</td></tr>
<tr class="memdesc:a5a6c66bde88abdfa857bc9715acb8314"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert this stream's class type to string.  <a href="group__video.html#a5a6c66bde88abdfa857bc9715acb8314">More...</a><br /></td></tr>
<tr class="separator:a5a6c66bde88abdfa857bc9715acb8314"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Static Public Member Functions</h3></td></tr>
<tr class="memitem:aa2754b5d31e5466ad35db3f2832209f1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#aa2754b5d31e5466ad35db3f2832209f1">Create</a> (const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;options)</td></tr>
<tr class="memdesc:aa2754b5d31e5466ad35db3f2832209f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> struct that's already been filled out.  <a href="group__video.html#aa2754b5d31e5466ad35db3f2832209f1">More...</a><br /></td></tr>
<tr class="separator:aa2754b5d31e5466ad35db3f2832209f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a461077573ce4c48ef632956251b64c0a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a461077573ce4c48ef632956251b64c0a">Create</a> (const char *<a class="el" href="group__video.html#structURI">URI</a>, const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;options=<a class="el" href="group__video.html#structvideoOptions">videoOptions</a>())</td></tr>
<tr class="memdesc:a461077573ce4c48ef632956251b64c0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and optional <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a>.  <a href="group__video.html#a461077573ce4c48ef632956251b64c0a">More...</a><br /></td></tr>
<tr class="separator:a461077573ce4c48ef632956251b64c0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc89d40f9294ffbd096aa2e9bcc9a4fb"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#acc89d40f9294ffbd096aa2e9bcc9a4fb">Create</a> (const char *<a class="el" href="group__video.html#structURI">URI</a>, const <a class="el" href="group__commandLine.html#classcommandLine">commandLine</a> &amp;cmdLine)</td></tr>
<tr class="memdesc:acc89d40f9294ffbd096aa2e9bcc9a4fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and parsing command line arguments.  <a href="group__video.html#acc89d40f9294ffbd096aa2e9bcc9a4fb">More...</a><br /></td></tr>
<tr class="separator:acc89d40f9294ffbd096aa2e9bcc9a4fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a343fb7daf02469fa5d5e604b638b81ff"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a343fb7daf02469fa5d5e604b638b81ff">Create</a> (const char *<a class="el" href="group__video.html#structURI">URI</a>, const int argc, char **argv)</td></tr>
<tr class="memdesc:a343fb7daf02469fa5d5e604b638b81ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and parsing command line arguments.  <a href="group__video.html#a343fb7daf02469fa5d5e604b638b81ff">More...</a><br /></td></tr>
<tr class="separator:a343fb7daf02469fa5d5e604b638b81ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a346028a278dd67f6b1d69a69cd496e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a7a346028a278dd67f6b1d69a69cd496e">Create</a> (const int argc, char **argv, int positionArg=-1)</td></tr>
<tr class="memdesc:a7a346028a278dd67f6b1d69a69cd496e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface by parsing command line arguments, including the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>.  <a href="group__video.html#a7a346028a278dd67f6b1d69a69cd496e">More...</a><br /></td></tr>
<tr class="separator:a7a346028a278dd67f6b1d69a69cd496e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a754e0468210780b75641e08aff6604de"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a754e0468210780b75641e08aff6604de">Create</a> (const <a class="el" href="group__commandLine.html#classcommandLine">commandLine</a> &amp;cmdLine, int positionArg=-1)</td></tr>
<tr class="memdesc:a754e0468210780b75641e08aff6604de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface by parsing command line arguments, including the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>.  <a href="group__video.html#a754e0468210780b75641e08aff6604de">More...</a><br /></td></tr>
<tr class="separator:a754e0468210780b75641e08aff6604de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0122813d68dd88f0e1d1d92fbbc7edd1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a0122813d68dd88f0e1d1d92fbbc7edd1">CreateNullOutput</a> ()</td></tr>
<tr class="memdesc:a0122813d68dd88f0e1d1d92fbbc7edd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface that acts as a NULL output and does nothing with incoming frames.  <a href="group__video.html#a0122813d68dd88f0e1d1d92fbbc7edd1">More...</a><br /></td></tr>
<tr class="separator:a0122813d68dd88f0e1d1d92fbbc7edd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ffc51285e0dc05addf926b5f4598b88"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a4ffc51285e0dc05addf926b5f4598b88">Usage</a> ()</td></tr>
<tr class="memdesc:a4ffc51285e0dc05addf926b5f4598b88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Usage string for command line arguments to <a class="el" href="group__video.html#aa2754b5d31e5466ad35db3f2832209f1" title="Create videoOutput interface from a videoOptions struct that&#39;s already been filled out.">Create()</a>  <a href="group__video.html#a4ffc51285e0dc05addf926b5f4598b88">More...</a><br /></td></tr>
<tr class="separator:a4ffc51285e0dc05addf926b5f4598b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b8d053b9564bb2ec042ef9760de23bb"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a1b8d053b9564bb2ec042ef9760de23bb">TypeToStr</a> (uint32_t type)</td></tr>
<tr class="memdesc:a1b8d053b9564bb2ec042ef9760de23bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a class type to a string.  <a href="group__video.html#a1b8d053b9564bb2ec042ef9760de23bb">More...</a><br /></td></tr>
<tr class="separator:a1b8d053b9564bb2ec042ef9760de23bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Protected Member Functions</h3></td></tr>
<tr class="memitem:a02b39780efc6480ab424764dafe082ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a02b39780efc6480ab424764dafe082ba">videoOutput</a> (const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;options)</td></tr>
<tr class="separator:a02b39780efc6480ab424764dafe082ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Protected Attributes</h3></td></tr>
<tr class="memitem:a473772043b363d7c8dc00cddb70b0aa9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a473772043b363d7c8dc00cddb70b0aa9">mStreaming</a></td></tr>
<tr class="separator:a473772043b363d7c8dc00cddb70b0aa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af749bcbea4200ea33a1135f4f040879d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__video.html#structvideoOptions">videoOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#af749bcbea4200ea33a1135f4f040879d">mOptions</a></td></tr>
<tr class="separator:af749bcbea4200ea33a1135f4f040879d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a583b2977fc4b9e1747f1b9199bc583ea"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="group__video.html#classvideoOutput">videoOutput</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a583b2977fc4b9e1747f1b9199bc583ea">mOutputs</a></td></tr>
<tr class="separator:a583b2977fc4b9e1747f1b9199bc583ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Constructor &amp; Destructor Documentation</h4>
<a id="a2186412156484860e31d827c10becf96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2186412156484860e31d827c10becf96">&#9670;&nbsp;</a></span>~videoOutput()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual videoOutput::~videoOutput </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destroy interface and release all resources. </p>

</div>
</div>
<a id="a02b39780efc6480ab424764dafe082ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02b39780efc6480ab424764dafe082ba">&#9670;&nbsp;</a></span>videoOutput()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">videoOutput::videoOutput </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h4 class="groupheader">Member Function Documentation</h4>
<a id="ad2da4bab42fbd19a851e205647443ea5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2da4bab42fbd19a851e205647443ea5">&#9670;&nbsp;</a></span>AddOutput()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void videoOutput::AddOutput </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video.html#classvideoOutput">videoOutput</a> *&#160;</td>
          <td class="paramname"><em>output</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add an output sub-stream. </p>
<p>When a frame is rendered to this stream, it will be rendered to each sub-stream. </p>

</div>
</div>
<a id="a552252a397249335e77755e0b911225e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a552252a397249335e77755e0b911225e">&#9670;&nbsp;</a></span>Close()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void videoOutput::Close </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Stop streaming the device. </p>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="group__video.html#a552252a397249335e77755e0b911225e" title="Stop streaming the device.">Close()</a> is automatically called by the <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> destructor when it gets deleted, so you do not explicitly need to call <a class="el" href="group__video.html#a552252a397249335e77755e0b911225e" title="Stop streaming the device.">Close()</a> before exiting the program if you delete your <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> object. </dd></dl>

<p>Reimplemented in <a class="el" href="group__codec.html#a12c9bf5d87ef25783763a221bf66fa8e">gstEncoder</a>.</p>

</div>
</div>
<a id="acc89d40f9294ffbd096aa2e9bcc9a4fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc89d40f9294ffbd096aa2e9bcc9a4fb">&#9670;&nbsp;</a></span>Create() <span class="overload">[1/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a>* videoOutput::Create </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>URI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__commandLine.html#classcommandLine">commandLine</a> &amp;&#160;</td>
          <td class="paramname"><em>cmdLine</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and parsing command line arguments. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for valid command-line arguments to be parsed. </dd>
<dd>
the documentation above and the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="a343fb7daf02469fa5d5e604b638b81ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a343fb7daf02469fa5d5e604b638b81ff">&#9670;&nbsp;</a></span>Create() <span class="overload">[2/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a>* videoOutput::Create </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>URI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and parsing command line arguments. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for valid command-line arguments to be parsed. </dd>
<dd>
the documentation above and the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="a461077573ce4c48ef632956251b64c0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a461077573ce4c48ef632956251b64c0a">&#9670;&nbsp;</a></span>Create() <span class="overload">[3/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a>* videoOutput::Create </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>URI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em> = <code><a class="el" href="group__video.html#structvideoOptions">videoOptions</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and optional <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a>. </p>
<dl class="section see"><dt>See also</dt><dd>the documentation above and the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="a754e0468210780b75641e08aff6604de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a754e0468210780b75641e08aff6604de">&#9670;&nbsp;</a></span>Create() <span class="overload">[4/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a>* videoOutput::Create </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__commandLine.html#classcommandLine">commandLine</a> &amp;&#160;</td>
          <td class="paramname"><em>cmdLine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>positionArg</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface by parsing command line arguments, including the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">positionArg</td><td>indicates the positional argument number in the command line of the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> (or <code>-1</code> if a positional argument isn't used, and should instead be parsed from the <code>--input=</code> option). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for valid command-line arguments to be parsed. </dd>
<dd>
the documentation above and the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="a7a346028a278dd67f6b1d69a69cd496e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a346028a278dd67f6b1d69a69cd496e">&#9670;&nbsp;</a></span>Create() <span class="overload">[5/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a>* videoOutput::Create </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>positionArg</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface by parsing command line arguments, including the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">positionArg</td><td>indicates the positional argument number in the command line of the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> (or <code>-1</code> if a positional argument isn't used, and should instead be parsed from the <code>--input=</code> option). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for valid command-line arguments to be parsed. </dd>
<dd>
the documentation above and the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="aa2754b5d31e5466ad35db3f2832209f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2754b5d31e5466ad35db3f2832209f1">&#9670;&nbsp;</a></span>Create() <span class="overload">[6/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a>* videoOutput::Create </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> struct that's already been filled out. </p>
<p>It's expected that the supplied <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> already contain a valid resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>. </p>

</div>
</div>
<a id="a0122813d68dd88f0e1d1d92fbbc7edd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0122813d68dd88f0e1d1d92fbbc7edd1">&#9670;&nbsp;</a></span>CreateNullOutput()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoOutput">videoOutput</a>* videoOutput::CreateNullOutput </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoOutput" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface that acts as a NULL output and does nothing with incoming frames. </p>
<p><a class="el" href="group__video.html#a0122813d68dd88f0e1d1d92fbbc7edd1" title="Create videoOutput interface that acts as a NULL output and does nothing with incoming frames.">CreateNullOutput()</a> can be used when there are no other outputs created and programs expect one to run. </p>

</div>
</div>
<a id="ab38d8fb1ad7855cf428d9f8cf5806bb4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab38d8fb1ad7855cf428d9f8cf5806bb4">&#9670;&nbsp;</a></span>GetFrameCount()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t videoOutput::GetFrameCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the number of frames output. </p>

</div>
</div>
<a id="a26c37f79e965f1b9741b4d9b3923bd6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26c37f79e965f1b9741b4d9b3923bd6b">&#9670;&nbsp;</a></span>GetFrameRate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float videoOutput::GetFrameRate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the framerate, in Hz or FPS. </p>

</div>
</div>
<a id="aa225fb199069cf2a4b30f467e237da73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa225fb199069cf2a4b30f467e237da73">&#9670;&nbsp;</a></span>GetHeight()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoOutput::GetHeight </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the height of the stream, in pixels. </p>

</div>
</div>
<a id="adc630f31a8d55dc852ac1e01c1f7dc58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc630f31a8d55dc852ac1e01c1f7dc58">&#9670;&nbsp;</a></span>GetNumOutputs()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoOutput::GetNumOutputs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the number of sub-streams. </p>

</div>
</div>
<a id="a59f21f27a0efe56541fbe15f1d5f46ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59f21f27a0efe56541fbe15f1d5f46ce">&#9670;&nbsp;</a></span>GetOptions()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a>&amp; videoOutput::GetOptions </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> of the stream. </p>

</div>
</div>
<a id="aa1a64933421c48f1af63ea12a8217421"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1a64933421c48f1af63ea12a8217421">&#9670;&nbsp;</a></span>GetOutput()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__video.html#classvideoOutput">videoOutput</a>* videoOutput::GetOutput </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return a sub-stream. </p>

</div>
</div>
<a id="a47edea2ad237e50cfbd6d0a192280ee5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47edea2ad237e50cfbd6d0a192280ee5">&#9670;&nbsp;</a></span>GetResource()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="group__video.html#structURI">URI</a>&amp; videoOutput::GetResource </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> of the stream. </p>

</div>
</div>
<a id="aaedce68dfff9bd5c3e76c32468632512"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaedce68dfff9bd5c3e76c32468632512">&#9670;&nbsp;</a></span>GetType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual uint32_t videoOutput::GetType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the interface type of the stream. </p>
<p>This could be one of the following values:</p>
<ul>
<li><a class="el" href="group__OpenGL.html#a13bebe88c1df15a70255134da202a131" title="Unique type identifier of glDisplay class.">glDisplay::Type</a></li>
<li><a class="el" href="group__codec.html#a0274b5b3365e440b93fd6b5c8bcf2b2e" title="Unique type identifier of gstEncoder class.">gstEncoder::Type</a></li>
<li><a class="el" href="group__image.html#af767ee4c3dfbedd450b5e3c7f86b326a" title="Unique type identifier of imageWriter class.">imageWriter::Type</a> </li>
</ul>

<p>Reimplemented in <a class="el" href="group__OpenGL.html#a2dd585c39b61c2b06c4bf21b9663ef93">glDisplay</a>, <a class="el" href="group__codec.html#ab1fd934813f47039bc30aac6238c5bc7">gstEncoder</a>, and <a class="el" href="group__image.html#ae5d8c048302526edb9e6a84edbc4cb97">imageWriter</a>.</p>

</div>
</div>
<a id="afaba8521f7ff078293ee4052a28ee71c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afaba8521f7ff078293ee4052a28ee71c">&#9670;&nbsp;</a></span>GetWidth()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoOutput::GetWidth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the width of the stream, in pixels. </p>

</div>
</div>
<a id="a2a3cf8d6230e26e27c5d22b29a150bdc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a3cf8d6230e26e27c5d22b29a150bdc">&#9670;&nbsp;</a></span>IsStreaming()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOutput::IsStreaming </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the device is actively streaming or not. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the device is streaming (open), or <code>false</code> if it's closed or has reached EOS (End Of Stream). </dd></dl>

</div>
</div>
<a id="aa5463fc78e3d259fa18ea2e6349e21c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5463fc78e3d259fa18ea2e6349e21c8">&#9670;&nbsp;</a></span>IsType() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOutput::IsType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if a this stream is of a particular type. </p>
<p>Can be used with <a class="el" href="group__OpenGL.html#classglDisplay" title="OpenGL display window and image/video renderer with CUDA interoperability.">glDisplay</a>, <a class="el" href="group__codec.html#classgstEncoder" title="Hardware-accelerated video encoder for Jetson using GStreamer.">gstEncoder</a>, and <a class="el" href="group__image.html#classimageWriter" title="Save an image or set of images to disk.">imageWriter</a>. For example: <br  />
</p>
<p>if( stream-&gt;<a class="el" href="group__video.html#a0a3ed32e27da1e996dc21c0339dc5a95" title="Check if this stream is of a particular type.">IsType&lt;glDisplay&gt;()</a> ) glDisplay* display = (glDisplay*)stream; // safe to cast </p>

</div>
</div>
<a id="a0a3ed32e27da1e996dc21c0339dc5a95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a3ed32e27da1e996dc21c0339dc5a95">&#9670;&nbsp;</a></span>IsType() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOutput::IsType </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if this stream is of a particular type. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#aaedce68dfff9bd5c3e76c32468632512" title="Return the interface type of the stream.">GetType()</a> for possible values. </dd></dl>

</div>
</div>
<a id="a58d163c8d3e54f336bf2dda4a759750e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58d163c8d3e54f336bf2dda4a759750e">&#9670;&nbsp;</a></span>Open()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool videoOutput::Open </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Begin streaming the device. </p>
<p>After <a class="el" href="group__video.html#a58d163c8d3e54f336bf2dda4a759750e" title="Begin streaming the device.">Open()</a> is called, frames from the device can begin to be rendered.</p>
<p><a class="el" href="group__video.html#a58d163c8d3e54f336bf2dda4a759750e" title="Begin streaming the device.">Open()</a> is not stricly necessary to call, if you call one of the <a class="el" href="group__video.html#ac63d627d52174400c01c28bb0de82993" title="Render and output the next frame to the stream.">Render()</a> functions they will first check to make sure that the stream is opened, and if not they will open it automatically for you.</p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> if an error occurred opening the stream. </dd></dl>

<p>Reimplemented in <a class="el" href="group__codec.html#a39bac88df0521b855a01aeb58953815e">gstEncoder</a>, and <a class="el" href="group__OpenGL.html#a65a2ec3a8dae7febff9c1e46b426c891">glDisplay</a>.</p>

</div>
</div>
<a id="ac63d627d52174400c01c28bb0de82993"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac63d627d52174400c01c28bb0de82993">&#9670;&nbsp;</a></span>Render() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOutput::Render </td>
          <td>(</td>
          <td class="paramtype">T *&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>height</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Render and output the next frame to the stream. </p>
<p>The image formats supported by this templated version of <a class="el" href="group__video.html#ac63d627d52174400c01c28bb0de82993" title="Render and output the next frame to the stream.">Render()</a> include the following:</p>
<ul>
<li>uchar3 (<code>IMAGE_RGB8</code>)</li>
<li>uchar4 (<code>IMAGE_RGBA8</code>)</li>
<li>float3 (<code>IMAGE_RGB32F</code>)</li>
<li>float4 (<code>IMAGE_RGBA32F</code>)</li>
</ul>
<p>The image format will automatically be deduced from these types. If other types are used with this overload, a static compile-time error will be asserted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">image</td><td>CUDA pointer containing the image to output. </td></tr>
    <tr><td class="paramname">width</td><td>width of the image, in pixels. </td></tr>
    <tr><td class="paramname">height</td><td>height of the image, in pixels. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> on error. </dd></dl>

</div>
</div>
<a id="a8e53017c0e49212405391f82fbac876f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e53017c0e49212405391f82fbac876f">&#9670;&nbsp;</a></span>Render() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool videoOutput::Render </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406">imageFormat</a>&#160;</td>
          <td class="paramname"><em>format</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Render and output the next frame to the stream. </p>
<p>The image formats supported by <a class="el" href="group__video.html#ac63d627d52174400c01c28bb0de82993" title="Render and output the next frame to the stream.">Render()</a> are <code>IMAGE_RGB8</code> (uchar3), <code>IMAGE_RGBA8</code> (uchar4), <code>IMAGE_RGB32F</code> (float3), and <code>IMAGE_RGBA32F</code> (float4). </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406" title="The imageFormat enum is used to identify the pixel format and colorspace of an image.">imageFormat</a> for more info.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">image</td><td>CUDA pointer containing the image to output. </td></tr>
    <tr><td class="paramname">width</td><td>width of the image, in pixels. </td></tr>
    <tr><td class="paramname">height</td><td>height of the image, in pixels. </td></tr>
    <tr><td class="paramname">format</td><td>format of the image (</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406" title="The imageFormat enum is used to identify the pixel format and colorspace of an image.">imageFormat</a>) </dd></dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> on error. </dd></dl>

<p>Reimplemented in <a class="el" href="group__OpenGL.html#a5f4e4625ea4d5c1d875dc521d38ace0d">glDisplay</a>, <a class="el" href="group__codec.html#a84bcc87ed05ba1c02bbb1c95e430a3d3">gstEncoder</a>, and <a class="el" href="group__image.html#a6867f5326a09025d9a21bf3932314635">imageWriter</a>.</p>

</div>
</div>
<a id="a7968711adc8814a9ec4e127e7b3a8bb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7968711adc8814a9ec4e127e7b3a8bb2">&#9670;&nbsp;</a></span>SetStatus()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void videoOutput::SetStatus </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set a status string (i.e. </p>
<p>status bar text on display window). Other types of interfaces may ignore the status text. </p>

<p>Reimplemented in <a class="el" href="group__OpenGL.html#a63804bbc679034342b14fe4c2c4da042">glDisplay</a>.</p>

</div>
</div>
<a id="a5a6c66bde88abdfa857bc9715acb8314"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a6c66bde88abdfa857bc9715acb8314">&#9670;&nbsp;</a></span>TypeToStr() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char* videoOutput::TypeToStr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert this stream's class type to string. </p>

</div>
</div>
<a id="a1b8d053b9564bb2ec042ef9760de23bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b8d053b9564bb2ec042ef9760de23bb">&#9670;&nbsp;</a></span>TypeToStr() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* videoOutput::TypeToStr </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert a class type to a string. </p>

</div>
</div>
<a id="a4ffc51285e0dc05addf926b5f4598b88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ffc51285e0dc05addf926b5f4598b88">&#9670;&nbsp;</a></span>Usage()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* videoOutput::Usage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Usage string for command line arguments to <a class="el" href="group__video.html#aa2754b5d31e5466ad35db3f2832209f1" title="Create videoOutput interface from a videoOptions struct that&#39;s already been filled out.">Create()</a> </p>

</div>
</div>
<h4 class="groupheader">Member Data Documentation</h4>
<a id="af749bcbea4200ea33a1135f4f040879d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af749bcbea4200ea33a1135f4f040879d">&#9670;&nbsp;</a></span>mOptions</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__video.html#structvideoOptions">videoOptions</a> videoOutput::mOptions</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a583b2977fc4b9e1747f1b9199bc583ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a583b2977fc4b9e1747f1b9199bc583ea">&#9670;&nbsp;</a></span>mOutputs</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="group__video.html#classvideoOutput">videoOutput</a>*&gt; videoOutput::mOutputs</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a473772043b363d7c8dc00cddb70b0aa9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a473772043b363d7c8dc00cddb70b0aa9">&#9670;&nbsp;</a></span>mStreaming</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOutput::mStreaming</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>

</div>
</div>
<a name="classvideoSource" id="classvideoSource"></a>
<h2 class="memtitle"><span class="permalink"><a href="#classvideoSource">&#9670;&nbsp;</a></span>videoSource</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">class videoSource</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>The <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> API is for capturing frames from video input devices such as MIPI CSI cameras, V4L2 cameras, video/images files from disk, directories containing a sequence of images, and from RTP/RTSP network video streams over UDP/IP. </p>
<p><a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interfaces are implemented by <a class="el" href="group__camera.html#classgstCamera" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements.">gstCamera</a>, <a class="el" href="group__codec.html#classgstDecoder" title="Hardware-accelerated video decoder for Jetson using GStreamer.">gstDecoder</a>, and <a class="el" href="group__image.html#classimageLoader" title="Load an image or set of images from disk into GPU memory.">imageLoader</a>. The specific implementation is selected at runtime based on the type of resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>.</p>
<p><a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> supports the following protocols and resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s: </p><pre class="fragment">-  `csi://0` for MIPI CSI cameras, where `0` can be replaced with the camera port.
   It is also assumed that if a number with no protocol is specified (e.g. `"0"`),
   this means to use the MIPI CSI camera of that number (`"0"` -&gt; `csi://0`).

- `v4l2:///dev/video0` for V4L2 cameras, where `/dev/video0` can be replaced with
   a different video device (e.g. `v4l2:///dev/video1` for V4L2 video device `1`).
   If no protocol is specified but the string begins with `/dev/video`, then it is
   assumed that the protocol is V4L2 (`/dev/video0` -&gt; `v4l2:///dev/video0`)

- `rtp://@:1234` to recieve an RTP network stream, where `1234` is the port and `@` is shorthand
   for localhost.  `@` can also be substituted for the IP address of a multicast group.
   Note that it is important to manually specify the codec of the stream when using RTP,
   as the codec cannot be discovered from the RTP stream itself and need to be provided.
   @see videoOptions for more info about the `--input-codec` option.

- `rtsp://username:password@&lt;remote-host&gt;:1234` to subscribe to an RTSP network stream, where
   `&lt;remote-host&gt;` should be substituted for the remote host's IP address or hostname, and 
   `1234` is the port.  For example, `rtsp://192.168.1.2:5000`.  The `username` and `password` 
   are optional, and are only used for RTSP streams that require authentication.

- `file:///home/user/my_video.mp4` for disk-based videos, images, and directories of images.
   You can leave off the `file://` protocol identifier and it will be deduced from the path.
   It can be a relative or absolute path.  If a directory is specified that contains images,
   those images will be loaded in sequence (sorted alphanumerically).  The path can also
   contain wildcard characters, for example `"images/*.jpg"` - however when using wildcards
   from the command line, enclose the string in quotes otherwise the OS will pre-expand them.
   Supported video formats for loading include MKV, MP4, AVI, and FLV. Supported codecs for 
   decoding include H.264, H.265, VP8, VP9, MPEG-2, MPEG-4, and MJPEG. Supported image formats
   for loading include JPG, PNG, TGA, BMP, GIF, PSD, HDR, PIC, and PNM (PPM/PGM binary).
</pre><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> for info about resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> formats. </dd>
<dd>
<a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for additional options and command-line arguments. </dd></dl>
</div><div class="dynheader">
Inheritance diagram for videoSource:</div>
<div class="dyncontent">
 <div class="center">
  <img src="group__video.png" usemap="#videoSource_map" alt=""/>
  <map id="videoSource_map" name="videoSource_map">
<area href="group__camera.html#classgstCamera" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements." alt="gstCamera" shape="rect" coords="0,56,85,80"/>
<area href="group__codec.html#classgstDecoder" title="Hardware-accelerated video decoder for Jetson using GStreamer." alt="gstDecoder" shape="rect" coords="95,56,180,80"/>
<area href="group__image.html#classimageLoader" title="Load an image or set of images from disk into GPU memory." alt="imageLoader" shape="rect" coords="190,56,275,80"/>
  </map>
</div></div>
<table class="memberdecls">
<tr><td colspan="2"><h3>Public Types</h3></td></tr>
<tr class="memitem:adf535af6425bba4700aa49a8a1c31fc8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8">Status</a> { <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a7b6931de9597c73a7e153c6b2f056c30">ERROR</a> = -2, 
<a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a3dc92a1fc50b30a11368684bc393ee73">EOS</a> = -1, 
<a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a53f14b4b251e2a20a98045206ba0dd1b">TIMEOUT</a> = 0, 
<a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a1433e3e072db57cf888a319fec854d0a">OK</a> = 1
 }</td></tr>
<tr class="memdesc:adf535af6425bba4700aa49a8a1c31fc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stream status codes that are optionally returned from <a class="el" href="group__video.html#a338edcb027b28a551b7f75d085ea13f8" title="Capture the next image from the video stream, using the default timeout of 1000ms.">Capture()</a>  <a href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8">More...</a><br /></td></tr>
<tr class="separator:adf535af6425bba4700aa49a8a1c31fc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Public Member Functions</h3></td></tr>
<tr class="memitem:a2cae1095df64b7c61de77935b77032bb"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a2cae1095df64b7c61de77935b77032bb">~videoSource</a> ()</td></tr>
<tr class="memdesc:a2cae1095df64b7c61de77935b77032bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy interface and release all resources.  <a href="group__video.html#a2cae1095df64b7c61de77935b77032bb">More...</a><br /></td></tr>
<tr class="separator:a2cae1095df64b7c61de77935b77032bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a338edcb027b28a551b7f75d085ea13f8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a338edcb027b28a551b7f75d085ea13f8"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__video.html#a338edcb027b28a551b7f75d085ea13f8">Capture</a> (T **image, int *status)</td></tr>
<tr class="memdesc:a338edcb027b28a551b7f75d085ea13f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Capture the next image from the video stream, using the default timeout of 1000ms.  <a href="group__video.html#a338edcb027b28a551b7f75d085ea13f8">More...</a><br /></td></tr>
<tr class="separator:a338edcb027b28a551b7f75d085ea13f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a838840d3d10996033a566d7e968331"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a1a838840d3d10996033a566d7e968331"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__video.html#a1a838840d3d10996033a566d7e968331">Capture</a> (T **image, uint64_t timeout=<a class="el" href="group__video.html#a8bc5b1b9a8bc15292890fef1028adbee">DEFAULT_TIMEOUT</a>, int *status=NULL)</td></tr>
<tr class="memdesc:a1a838840d3d10996033a566d7e968331"><td class="mdescLeft">&#160;</td><td class="mdescRight">Capture the next image from the video stream.  <a href="group__video.html#a1a838840d3d10996033a566d7e968331">More...</a><br /></td></tr>
<tr class="separator:a1a838840d3d10996033a566d7e968331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36a40e4d196aaf31540076317d49aaf6"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a36a40e4d196aaf31540076317d49aaf6">Capture</a> (void **image, <a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406">imageFormat</a> format, uint64_t timeout=<a class="el" href="group__video.html#a8bc5b1b9a8bc15292890fef1028adbee">DEFAULT_TIMEOUT</a>, int *status=NULL)=0</td></tr>
<tr class="memdesc:a36a40e4d196aaf31540076317d49aaf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Capture the next image from the video stream.  <a href="group__video.html#a36a40e4d196aaf31540076317d49aaf6">More...</a><br /></td></tr>
<tr class="separator:a36a40e4d196aaf31540076317d49aaf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7907ba2392b6ea5f747409d1bfbc18b"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#aa7907ba2392b6ea5f747409d1bfbc18b">Open</a> ()</td></tr>
<tr class="memdesc:aa7907ba2392b6ea5f747409d1bfbc18b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begin streaming the device.  <a href="group__video.html#aa7907ba2392b6ea5f747409d1bfbc18b">More...</a><br /></td></tr>
<tr class="separator:aa7907ba2392b6ea5f747409d1bfbc18b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19ed8f98e4ce28462296b498804005ae"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a19ed8f98e4ce28462296b498804005ae">Close</a> ()</td></tr>
<tr class="memdesc:a19ed8f98e4ce28462296b498804005ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop streaming the device.  <a href="group__video.html#a19ed8f98e4ce28462296b498804005ae">More...</a><br /></td></tr>
<tr class="separator:a19ed8f98e4ce28462296b498804005ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ce18fd4c3a8f934e7ec000f0d36b7e9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a0ce18fd4c3a8f934e7ec000f0d36b7e9">IsStreaming</a> () const</td></tr>
<tr class="memdesc:a0ce18fd4c3a8f934e7ec000f0d36b7e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the device is actively streaming or not.  <a href="group__video.html#a0ce18fd4c3a8f934e7ec000f0d36b7e9">More...</a><br /></td></tr>
<tr class="separator:a0ce18fd4c3a8f934e7ec000f0d36b7e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17f0c43e832d4de85a014b3aa4265732"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a17f0c43e832d4de85a014b3aa4265732">GetWidth</a> () const</td></tr>
<tr class="memdesc:a17f0c43e832d4de85a014b3aa4265732"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the width of the stream, in pixels.  <a href="group__video.html#a17f0c43e832d4de85a014b3aa4265732">More...</a><br /></td></tr>
<tr class="separator:a17f0c43e832d4de85a014b3aa4265732"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ca24054da683cae18b0bfad01dbf1d0"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a6ca24054da683cae18b0bfad01dbf1d0">GetHeight</a> () const</td></tr>
<tr class="memdesc:a6ca24054da683cae18b0bfad01dbf1d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the height of the stream, in pixels.  <a href="group__video.html#a6ca24054da683cae18b0bfad01dbf1d0">More...</a><br /></td></tr>
<tr class="separator:a6ca24054da683cae18b0bfad01dbf1d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e6ac667bd17a49cc94a6b16173a06ba"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a4e6ac667bd17a49cc94a6b16173a06ba">GetFrameRate</a> () const</td></tr>
<tr class="memdesc:a4e6ac667bd17a49cc94a6b16173a06ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the framerate, in Hz or FPS.  <a href="group__video.html#a4e6ac667bd17a49cc94a6b16173a06ba">More...</a><br /></td></tr>
<tr class="separator:a4e6ac667bd17a49cc94a6b16173a06ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f1adda850349479bb3b4c4e90b3c429"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a2f1adda850349479bb3b4c4e90b3c429">GetFrameCount</a> () const</td></tr>
<tr class="memdesc:a2f1adda850349479bb3b4c4e90b3c429"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of frames captured.  <a href="group__video.html#a2f1adda850349479bb3b4c4e90b3c429">More...</a><br /></td></tr>
<tr class="separator:a2f1adda850349479bb3b4c4e90b3c429"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36ef21c0eb8cc9a7ce181cebf3d88e06"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a36ef21c0eb8cc9a7ce181cebf3d88e06">GetLastTimestamp</a> () const</td></tr>
<tr class="memdesc:a36ef21c0eb8cc9a7ce181cebf3d88e06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get timestamp of the last captured frame, in nanoseconds.  <a href="group__video.html#a36ef21c0eb8cc9a7ce181cebf3d88e06">More...</a><br /></td></tr>
<tr class="separator:a36ef21c0eb8cc9a7ce181cebf3d88e06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af170b23f004c98754479f84351ef4c51"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406">imageFormat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#af170b23f004c98754479f84351ef4c51">GetRawFormat</a> () const</td></tr>
<tr class="memdesc:af170b23f004c98754479f84351ef4c51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get raw image format.  <a href="group__video.html#af170b23f004c98754479f84351ef4c51">More...</a><br /></td></tr>
<tr class="separator:af170b23f004c98754479f84351ef4c51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2052b0b41222c17e3d14964f10c3ffa6"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="group__video.html#structURI">URI</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a2052b0b41222c17e3d14964f10c3ffa6">GetResource</a> () const</td></tr>
<tr class="memdesc:a2052b0b41222c17e3d14964f10c3ffa6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> of the stream.  <a href="group__video.html#a2052b0b41222c17e3d14964f10c3ffa6">More...</a><br /></td></tr>
<tr class="separator:a2052b0b41222c17e3d14964f10c3ffa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d423829515c5c91d132f476213e22bd"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a7d423829515c5c91d132f476213e22bd">GetOptions</a> () const</td></tr>
<tr class="memdesc:a7d423829515c5c91d132f476213e22bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> of the stream.  <a href="group__video.html#a7d423829515c5c91d132f476213e22bd">More...</a><br /></td></tr>
<tr class="separator:a7d423829515c5c91d132f476213e22bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76f6f92cf40ad72e9d7f76538d583e37"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a76f6f92cf40ad72e9d7f76538d583e37">GetType</a> () const</td></tr>
<tr class="memdesc:a76f6f92cf40ad72e9d7f76538d583e37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the interface type of the stream.  <a href="group__video.html#a76f6f92cf40ad72e9d7f76538d583e37">More...</a><br /></td></tr>
<tr class="separator:a76f6f92cf40ad72e9d7f76538d583e37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0883cf58cd0d8d0c05fb192a01250b7a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a0883cf58cd0d8d0c05fb192a01250b7a">IsType</a> (uint32_t type) const</td></tr>
<tr class="memdesc:a0883cf58cd0d8d0c05fb192a01250b7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if this stream is of a particular type.  <a href="group__video.html#a0883cf58cd0d8d0c05fb192a01250b7a">More...</a><br /></td></tr>
<tr class="separator:a0883cf58cd0d8d0c05fb192a01250b7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3c1689db5baf2786099d2c0be075010"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ad3c1689db5baf2786099d2c0be075010"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__video.html#ad3c1689db5baf2786099d2c0be075010">IsType</a> () const</td></tr>
<tr class="memdesc:ad3c1689db5baf2786099d2c0be075010"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a this stream is of a particular type.  <a href="group__video.html#ad3c1689db5baf2786099d2c0be075010">More...</a><br /></td></tr>
<tr class="separator:ad3c1689db5baf2786099d2c0be075010"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38909f4451ecdf3a2777aea3a088677e"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a38909f4451ecdf3a2777aea3a088677e">TypeToStr</a> () const</td></tr>
<tr class="memdesc:a38909f4451ecdf3a2777aea3a088677e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert this stream's class type to string.  <a href="group__video.html#a38909f4451ecdf3a2777aea3a088677e">More...</a><br /></td></tr>
<tr class="separator:a38909f4451ecdf3a2777aea3a088677e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Static Public Member Functions</h3></td></tr>
<tr class="memitem:aadf5947b119db934f02fefcd8ffe23ee"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoSource">videoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#aadf5947b119db934f02fefcd8ffe23ee">Create</a> (const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;options)</td></tr>
<tr class="memdesc:aadf5947b119db934f02fefcd8ffe23ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interface from a <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> struct that's already been filled out.  <a href="group__video.html#aadf5947b119db934f02fefcd8ffe23ee">More...</a><br /></td></tr>
<tr class="separator:aadf5947b119db934f02fefcd8ffe23ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac84b9d20c628c19e0463aca50ed2cdf9"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoSource">videoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#ac84b9d20c628c19e0463aca50ed2cdf9">Create</a> (const char *<a class="el" href="group__video.html#structURI">URI</a>, const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;options=<a class="el" href="group__video.html#structvideoOptions">videoOptions</a>())</td></tr>
<tr class="memdesc:ac84b9d20c628c19e0463aca50ed2cdf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interface from a resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and optional <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a>.  <a href="group__video.html#ac84b9d20c628c19e0463aca50ed2cdf9">More...</a><br /></td></tr>
<tr class="separator:ac84b9d20c628c19e0463aca50ed2cdf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17577a0ed75a86cea8e579f4405a2942"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoSource">videoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a17577a0ed75a86cea8e579f4405a2942">Create</a> (const char *<a class="el" href="group__video.html#structURI">URI</a>, const <a class="el" href="group__commandLine.html#classcommandLine">commandLine</a> &amp;cmdLine)</td></tr>
<tr class="memdesc:a17577a0ed75a86cea8e579f4405a2942"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interface from a resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and parsing command line arguments.  <a href="group__video.html#a17577a0ed75a86cea8e579f4405a2942">More...</a><br /></td></tr>
<tr class="separator:a17577a0ed75a86cea8e579f4405a2942"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6306cfc0359265983842b56b5cf09212"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoSource">videoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a6306cfc0359265983842b56b5cf09212">Create</a> (const char *<a class="el" href="group__video.html#structURI">URI</a>, const int argc, char **argv)</td></tr>
<tr class="memdesc:a6306cfc0359265983842b56b5cf09212"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interface from a resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and parsing command line arguments.  <a href="group__video.html#a6306cfc0359265983842b56b5cf09212">More...</a><br /></td></tr>
<tr class="separator:a6306cfc0359265983842b56b5cf09212"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa796136bec7acf354e3e81e5b7c0172a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoSource">videoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#aa796136bec7acf354e3e81e5b7c0172a">Create</a> (const int argc, char **argv, int positionArg=-1)</td></tr>
<tr class="memdesc:aa796136bec7acf354e3e81e5b7c0172a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interface by parsing command line arguments, including the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>.  <a href="group__video.html#aa796136bec7acf354e3e81e5b7c0172a">More...</a><br /></td></tr>
<tr class="separator:aa796136bec7acf354e3e81e5b7c0172a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac529c5b81c74eb71436e2031a6c1f214"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__video.html#classvideoSource">videoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#ac529c5b81c74eb71436e2031a6c1f214">Create</a> (const <a class="el" href="group__commandLine.html#classcommandLine">commandLine</a> &amp;cmdLine, int positionArg=-1)</td></tr>
<tr class="memdesc:ac529c5b81c74eb71436e2031a6c1f214"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interface by parsing command line arguments, including the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>.  <a href="group__video.html#ac529c5b81c74eb71436e2031a6c1f214">More...</a><br /></td></tr>
<tr class="separator:ac529c5b81c74eb71436e2031a6c1f214"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac254b0c9d38c76c62e6c5f8ad20ef447"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#ac254b0c9d38c76c62e6c5f8ad20ef447">Usage</a> ()</td></tr>
<tr class="memdesc:ac254b0c9d38c76c62e6c5f8ad20ef447"><td class="mdescLeft">&#160;</td><td class="mdescRight">Usage string for command line arguments to <a class="el" href="group__video.html#aadf5947b119db934f02fefcd8ffe23ee" title="Create videoSource interface from a videoOptions struct that&#39;s already been filled out.">Create()</a>  <a href="group__video.html#ac254b0c9d38c76c62e6c5f8ad20ef447">More...</a><br /></td></tr>
<tr class="separator:ac254b0c9d38c76c62e6c5f8ad20ef447"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac080abc0de51300f838596d11b5544a8"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#ac080abc0de51300f838596d11b5544a8">TypeToStr</a> (uint32_t type)</td></tr>
<tr class="memdesc:ac080abc0de51300f838596d11b5544a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a class type to a string.  <a href="group__video.html#ac080abc0de51300f838596d11b5544a8">More...</a><br /></td></tr>
<tr class="separator:ac080abc0de51300f838596d11b5544a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Static Public Attributes</h3></td></tr>
<tr class="memitem:a8bc5b1b9a8bc15292890fef1028adbee"><td class="memItemLeft" align="right" valign="top">static const uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a8bc5b1b9a8bc15292890fef1028adbee">DEFAULT_TIMEOUT</a> =1000</td></tr>
<tr class="memdesc:a8bc5b1b9a8bc15292890fef1028adbee"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default Capture timeout (1000ms)  <a href="group__video.html#a8bc5b1b9a8bc15292890fef1028adbee">More...</a><br /></td></tr>
<tr class="separator:a8bc5b1b9a8bc15292890fef1028adbee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Protected Member Functions</h3></td></tr>
<tr class="memitem:aaee65d53e3dfb3f4644608c0eebcf833"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#aaee65d53e3dfb3f4644608c0eebcf833">videoSource</a> (const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;options)</td></tr>
<tr class="separator:aaee65d53e3dfb3f4644608c0eebcf833"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><h3>Protected Attributes</h3></td></tr>
<tr class="memitem:a0907f7140f13fa75fef5b23a1f44b55b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a0907f7140f13fa75fef5b23a1f44b55b">mStreaming</a></td></tr>
<tr class="separator:a0907f7140f13fa75fef5b23a1f44b55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3c05686659fae747ff8709be2c9b445"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__video.html#structvideoOptions">videoOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#aa3c05686659fae747ff8709be2c9b445">mOptions</a></td></tr>
<tr class="separator:aa3c05686659fae747ff8709be2c9b445"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a587c9a356b2714ba9d6ab0d3bdeeacb2"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a587c9a356b2714ba9d6ab0d3bdeeacb2">mLastTimestamp</a></td></tr>
<tr class="separator:a587c9a356b2714ba9d6ab0d3bdeeacb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f558c27bfac5e117100f8735f09f5bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406">imageFormat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video.html#a5f558c27bfac5e117100f8735f09f5bc">mRawFormat</a></td></tr>
<tr class="separator:a5f558c27bfac5e117100f8735f09f5bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Member Enumeration Documentation</h4>
<a id="adf535af6425bba4700aa49a8a1c31fc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf535af6425bba4700aa49a8a1c31fc8">&#9670;&nbsp;</a></span>Status</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8">videoSource::Status</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stream status codes that are optionally returned from <a class="el" href="group__video.html#a338edcb027b28a551b7f75d085ea13f8" title="Capture the next image from the video stream, using the default timeout of 1000ms.">Capture()</a> </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="adf535af6425bba4700aa49a8a1c31fc8a7b6931de9597c73a7e153c6b2f056c30"></a>ERROR&#160;</td><td class="fielddoc"><p>an error occurred </p>
</td></tr>
<tr><td class="fieldname"><a id="adf535af6425bba4700aa49a8a1c31fc8a3dc92a1fc50b30a11368684bc393ee73"></a>EOS&#160;</td><td class="fielddoc"><p>end-of-stream (EOS) </p>
</td></tr>
<tr><td class="fieldname"><a id="adf535af6425bba4700aa49a8a1c31fc8a53f14b4b251e2a20a98045206ba0dd1b"></a>TIMEOUT&#160;</td><td class="fielddoc"><p>a timeout occurred </p>
</td></tr>
<tr><td class="fieldname"><a id="adf535af6425bba4700aa49a8a1c31fc8a1433e3e072db57cf888a319fec854d0a"></a>OK&#160;</td><td class="fielddoc"><p>frame capture successful </p>
</td></tr>
</table>

</div>
</div>
<h4 class="groupheader">Constructor &amp; Destructor Documentation</h4>
<a id="a2cae1095df64b7c61de77935b77032bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cae1095df64b7c61de77935b77032bb">&#9670;&nbsp;</a></span>~videoSource()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual videoSource::~videoSource </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destroy interface and release all resources. </p>

</div>
</div>
<a id="aaee65d53e3dfb3f4644608c0eebcf833"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaee65d53e3dfb3f4644608c0eebcf833">&#9670;&nbsp;</a></span>videoSource()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">videoSource::videoSource </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h4 class="groupheader">Member Function Documentation</h4>
<a id="a338edcb027b28a551b7f75d085ea13f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a338edcb027b28a551b7f75d085ea13f8">&#9670;&nbsp;</a></span>Capture() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoSource::Capture </td>
          <td>(</td>
          <td class="paramtype">T **&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Capture the next image from the video stream, using the default timeout of 1000ms. </p>
<p>The image formats supported by this templated version of <a class="el" href="group__video.html#a338edcb027b28a551b7f75d085ea13f8" title="Capture the next image from the video stream, using the default timeout of 1000ms.">Capture()</a> include the following:</p>
<ul>
<li>uchar3 (<code>IMAGE_RGB8</code>)</li>
<li>uchar4 (<code>IMAGE_RGBA8</code>)</li>
<li>float3 (<code>IMAGE_RGB32F</code>)</li>
<li>float4 (<code>IMAGE_RGBA32F</code>)</li>
</ul>
<p>The image format will automatically be deduced from these types. If other types are used with this overload, a static compile-time error will be asserted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">image</td><td>output pointer that will be set to the memory containing the image. If this interface has it's <a class="el" href="group__video.html#afff91aa102908923622328e9f3ca3b83" title="If true, indicates the buffers are allocated in zeroCopy memory that is mapped to both the CPU and GP...">videoOptions::zeroCopy</a> flag set to true, the memory was allocated in mapped CPU/GPU memory and is be accessible from both CPU and CUDA. Otherwise, it's accessible only from CUDA.</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">status</td><td>optional status code returned (</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8" title="Stream status codes that are optionally returned from Capture()">videoSource::Status</a>). -2 on <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a7b6931de9597c73a7e153c6b2f056c30" title="an error occurred">ERROR</a>, -1 on <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a3dc92a1fc50b30a11368684bc393ee73" title="end-of-stream (EOS)">EOS</a>, 0 on <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a53f14b4b251e2a20a98045206ba0dd1b" title="a timeout occurred">TIMEOUT</a>, 1 on <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a1433e3e072db57cf888a319fec854d0a" title="frame capture successful">OK</a>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a frame was captured, <code>false</code> if there was an error or a timeout occurred. </dd></dl>

</div>
</div>
<a id="a1a838840d3d10996033a566d7e968331"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a838840d3d10996033a566d7e968331">&#9670;&nbsp;</a></span>Capture() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoSource::Capture </td>
          <td>(</td>
          <td class="paramtype">T **&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>timeout</em> = <code><a class="el" href="group__video.html#a8bc5b1b9a8bc15292890fef1028adbee">DEFAULT_TIMEOUT</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>status</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Capture the next image from the video stream. </p>
<p>The image formats supported by this templated version of <a class="el" href="group__video.html#a338edcb027b28a551b7f75d085ea13f8" title="Capture the next image from the video stream, using the default timeout of 1000ms.">Capture()</a> include the following:</p>
<ul>
<li>uchar3 (<code>IMAGE_RGB8</code>)</li>
<li>uchar4 (<code>IMAGE_RGBA8</code>)</li>
<li>float3 (<code>IMAGE_RGB32F</code>)</li>
<li>float4 (<code>IMAGE_RGBA32F</code>)</li>
</ul>
<p>The image format will automatically be deduced from these types. If other types are used with this overload, a static compile-time error will be asserted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">image</td><td>output pointer that will be set to the memory containing the image. If this interface has it's <a class="el" href="group__video.html#afff91aa102908923622328e9f3ca3b83" title="If true, indicates the buffers are allocated in zeroCopy memory that is mapped to both the CPU and GP...">videoOptions::zeroCopy</a> flag set to true, the memory was allocated in mapped CPU/GPU memory and is be accessible from both CPU and CUDA. Otherwise, it's accessible only from CUDA.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>timeout in milliseconds to wait to capture the image before returning. The default is 1000ms. A timeout value of <code>UINT64_MAX</code> will wait forever. A timeout of 0 will return instantly if a frame wasn't immediately ready.</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">status</td><td>optional status code returned (</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8" title="Stream status codes that are optionally returned from Capture()">videoSource::Status</a>). -2 on <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a7b6931de9597c73a7e153c6b2f056c30" title="an error occurred">ERROR</a>, -1 on <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a3dc92a1fc50b30a11368684bc393ee73" title="end-of-stream (EOS)">EOS</a>, 0 on <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a53f14b4b251e2a20a98045206ba0dd1b" title="a timeout occurred">TIMEOUT</a>, 1 on <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a1433e3e072db57cf888a319fec854d0a" title="frame capture successful">OK</a>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a frame was captured, <code>false</code> if there was an error or a timeout occurred. </dd></dl>

</div>
</div>
<a id="a36a40e4d196aaf31540076317d49aaf6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36a40e4d196aaf31540076317d49aaf6">&#9670;&nbsp;</a></span>Capture() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool videoSource::Capture </td>
          <td>(</td>
          <td class="paramtype">void **&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406">imageFormat</a>&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>timeout</em> = <code><a class="el" href="group__video.html#a8bc5b1b9a8bc15292890fef1028adbee">DEFAULT_TIMEOUT</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>status</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Capture the next image from the video stream. </p>
<p>The image formats supported by <a class="el" href="group__video.html#a338edcb027b28a551b7f75d085ea13f8" title="Capture the next image from the video stream, using the default timeout of 1000ms.">Capture()</a> are <code>IMAGE_RGB8</code> (uchar3), <code>IMAGE_RGBA8</code> (uchar4), <code>IMAGE_RGB32F</code> (float3), and <code>IMAGE_RGBA32F</code> (float4). </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406" title="The imageFormat enum is used to identify the pixel format and colorspace of an image.">imageFormat</a> for more info.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">image</td><td>output pointer that will be set to the memory containing the image. If this interface has it's <a class="el" href="group__video.html#afff91aa102908923622328e9f3ca3b83" title="If true, indicates the buffers are allocated in zeroCopy memory that is mapped to both the CPU and GP...">videoOptions::zeroCopy</a> flag set to true, the memory was allocated in mapped CPU/GPU memory and is be accessible from both CPU and CUDA. Otherwise, it's accessible only from CUDA.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>timeout in milliseconds to wait to capture the image before returning. The default is 1000ms. A timeout value of <code>UINT64_MAX</code> will wait forever. A timeout of 0 will return instantly if a frame wasn't immediately ready.</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">status</td><td>optional status code returned (</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8" title="Stream status codes that are optionally returned from Capture()">videoSource::Status</a>). -2 on <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a7b6931de9597c73a7e153c6b2f056c30" title="an error occurred">ERROR</a>, -1 on <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a3dc92a1fc50b30a11368684bc393ee73" title="end-of-stream (EOS)">EOS</a>, 0 on <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a53f14b4b251e2a20a98045206ba0dd1b" title="a timeout occurred">TIMEOUT</a>, 1 on <a class="el" href="group__video.html#adf535af6425bba4700aa49a8a1c31fc8a1433e3e072db57cf888a319fec854d0a" title="frame capture successful">OK</a>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a frame was captured, <code>false</code> if there was an error or a timeout occurred. </dd></dl>

<p>Implemented in <a class="el" href="group__camera.html#a58201c92cd49636dd26e09b79099857f">gstCamera</a>, <a class="el" href="group__codec.html#ab1815fabffb63e4b84260a3f772afb7a">gstDecoder</a>, and <a class="el" href="group__image.html#a8b71a373faf66fb0c6e287acb8d5684c">imageLoader</a>.</p>

</div>
</div>
<a id="a19ed8f98e4ce28462296b498804005ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19ed8f98e4ce28462296b498804005ae">&#9670;&nbsp;</a></span>Close()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void videoSource::Close </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Stop streaming the device. </p>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="group__video.html#a19ed8f98e4ce28462296b498804005ae" title="Stop streaming the device.">Close()</a> is automatically called by the <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> destructor when it gets deleted, so you do not explicitly need to call <a class="el" href="group__video.html#a19ed8f98e4ce28462296b498804005ae" title="Stop streaming the device.">Close()</a> before exiting the program if you delete your <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> object. </dd></dl>

<p>Reimplemented in <a class="el" href="group__camera.html#a8798df5c10fff5ecbaf2598816c94f55">gstCamera</a>, <a class="el" href="group__codec.html#a88ba5cb4519d8d50aaa3e28c9bf2c8f1">gstDecoder</a>, and <a class="el" href="group__image.html#ac06b32600a172fc0107ffe8240a13cb4">imageLoader</a>.</p>

</div>
</div>
<a id="a17577a0ed75a86cea8e579f4405a2942"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17577a0ed75a86cea8e579f4405a2942">&#9670;&nbsp;</a></span>Create() <span class="overload">[1/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoSource">videoSource</a>* videoSource::Create </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>URI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__commandLine.html#classcommandLine">commandLine</a> &amp;&#160;</td>
          <td class="paramname"><em>cmdLine</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interface from a resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and parsing command line arguments. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for valid command-line arguments to be parsed. </dd>
<dd>
the documentation above and the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="a6306cfc0359265983842b56b5cf09212"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6306cfc0359265983842b56b5cf09212">&#9670;&nbsp;</a></span>Create() <span class="overload">[2/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoSource">videoSource</a>* videoSource::Create </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>URI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interface from a resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and parsing command line arguments. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for valid command-line arguments to be parsed. </dd>
<dd>
the documentation above and the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="ac84b9d20c628c19e0463aca50ed2cdf9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac84b9d20c628c19e0463aca50ed2cdf9">&#9670;&nbsp;</a></span>Create() <span class="overload">[3/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoSource">videoSource</a>* videoSource::Create </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>URI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em> = <code><a class="el" href="group__video.html#structvideoOptions">videoOptions</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interface from a resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and optional <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a>. </p>
<dl class="section see"><dt>See also</dt><dd>the documentation above and the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="ac529c5b81c74eb71436e2031a6c1f214"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac529c5b81c74eb71436e2031a6c1f214">&#9670;&nbsp;</a></span>Create() <span class="overload">[4/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoSource">videoSource</a>* videoSource::Create </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__commandLine.html#classcommandLine">commandLine</a> &amp;&#160;</td>
          <td class="paramname"><em>cmdLine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>positionArg</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interface by parsing command line arguments, including the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">positionArg</td><td>indicates the positional argument number in the command line of the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> (or <code>-1</code> if a positional argument isn't used, and should instead be parsed from the <code>--input=</code> option). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for valid command-line arguments to be parsed. </dd>
<dd>
the documentation above and the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="aa796136bec7acf354e3e81e5b7c0172a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa796136bec7acf354e3e81e5b7c0172a">&#9670;&nbsp;</a></span>Create() <span class="overload">[5/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoSource">videoSource</a>* videoSource::Create </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>positionArg</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interface by parsing command line arguments, including the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">positionArg</td><td>indicates the positional argument number in the command line of the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> (or <code>-1</code> if a positional argument isn't used, and should instead be parsed from the <code>--input=</code> option). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for valid command-line arguments to be parsed. </dd>
<dd>
the documentation above and the <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="aadf5947b119db934f02fefcd8ffe23ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aadf5947b119db934f02fefcd8ffe23ee">&#9670;&nbsp;</a></span>Create() <span class="overload">[6/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="group__video.html#classvideoSource">videoSource</a>* videoSource::Create </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="group__video.html#classvideoSource" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> interface from a <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> struct that's already been filled out. </p>
<p>It's expected that the supplied <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> already contain a valid resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>. </p>

</div>
</div>
<a id="a2f1adda850349479bb3b4c4e90b3c429"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f1adda850349479bb3b4c4e90b3c429">&#9670;&nbsp;</a></span>GetFrameCount()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t videoSource::GetFrameCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the number of frames captured. </p>

</div>
</div>
<a id="a4e6ac667bd17a49cc94a6b16173a06ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e6ac667bd17a49cc94a6b16173a06ba">&#9670;&nbsp;</a></span>GetFrameRate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoSource::GetFrameRate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the framerate, in Hz or FPS. </p>

</div>
</div>
<a id="a6ca24054da683cae18b0bfad01dbf1d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ca24054da683cae18b0bfad01dbf1d0">&#9670;&nbsp;</a></span>GetHeight()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoSource::GetHeight </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the height of the stream, in pixels. </p>

</div>
</div>
<a id="a36ef21c0eb8cc9a7ce181cebf3d88e06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36ef21c0eb8cc9a7ce181cebf3d88e06">&#9670;&nbsp;</a></span>GetLastTimestamp()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t videoSource::GetLastTimestamp </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get timestamp of the last captured frame, in nanoseconds. </p>

</div>
</div>
<a id="a7d423829515c5c91d132f476213e22bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d423829515c5c91d132f476213e22bd">&#9670;&nbsp;</a></span>GetOptions()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="group__video.html#structvideoOptions">videoOptions</a>&amp; videoSource::GetOptions </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the <a class="el" href="group__video.html#structvideoOptions" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> of the stream. </p>

</div>
</div>
<a id="af170b23f004c98754479f84351ef4c51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af170b23f004c98754479f84351ef4c51">&#9670;&nbsp;</a></span>GetRawFormat()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406">imageFormat</a> videoSource::GetRawFormat </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get raw image format. </p>

</div>
</div>
<a id="a2052b0b41222c17e3d14964f10c3ffa6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2052b0b41222c17e3d14964f10c3ffa6">&#9670;&nbsp;</a></span>GetResource()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="group__video.html#structURI">URI</a>&amp; videoSource::GetResource </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the resource <a class="el" href="group__video.html#structURI" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> of the stream. </p>

</div>
</div>
<a id="a76f6f92cf40ad72e9d7f76538d583e37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76f6f92cf40ad72e9d7f76538d583e37">&#9670;&nbsp;</a></span>GetType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual uint32_t videoSource::GetType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the interface type of the stream. </p>
<p>This could be one of the following values:</p>
<ul>
<li><a class="el" href="group__camera.html#a9e83835ff04fb08ecef14a67efb5c3d5" title="Unique type identifier of gstCamera class.">gstCamera::Type</a></li>
<li><a class="el" href="group__codec.html#a4ae2851033f43b2e70cb8f13f4331ac3" title="Unique type identifier of gstDecoder class.">gstDecoder::Type</a></li>
<li><a class="el" href="group__image.html#a7ce41945601da456d9ea85324a4b90c0" title="Unique type identifier of imageLoader class.">imageLoader::Type</a> </li>
</ul>

<p>Reimplemented in <a class="el" href="group__camera.html#a40bdf4c4b7675e33bf670df07918e9c6">gstCamera</a>, <a class="el" href="group__codec.html#ad9c4a4b64c50f8ae8712e3061e8a18df">gstDecoder</a>, and <a class="el" href="group__image.html#a4b196ca1c23d9322d5b9bba6e05e0bdf">imageLoader</a>.</p>

</div>
</div>
<a id="a17f0c43e832d4de85a014b3aa4265732"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17f0c43e832d4de85a014b3aa4265732">&#9670;&nbsp;</a></span>GetWidth()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoSource::GetWidth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the width of the stream, in pixels. </p>

</div>
</div>
<a id="a0ce18fd4c3a8f934e7ec000f0d36b7e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ce18fd4c3a8f934e7ec000f0d36b7e9">&#9670;&nbsp;</a></span>IsStreaming()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoSource::IsStreaming </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the device is actively streaming or not. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the device is streaming (open), or <code>false</code> if it's closed or has reached EOS (End Of Stream). </dd></dl>

</div>
</div>
<a id="ad3c1689db5baf2786099d2c0be075010"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3c1689db5baf2786099d2c0be075010">&#9670;&nbsp;</a></span>IsType() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoSource::IsType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if a this stream is of a particular type. </p>
<p>Can be used with <a class="el" href="group__camera.html#classgstCamera" title="MIPI CSI and V4L2 camera capture using GStreamer and nvarguscamerasrc or v4l2src elements.">gstCamera</a>, <a class="el" href="group__codec.html#classgstDecoder" title="Hardware-accelerated video decoder for Jetson using GStreamer.">gstDecoder</a>, and <a class="el" href="group__image.html#classimageLoader" title="Load an image or set of images from disk into GPU memory.">imageLoader</a>. For example: <br  />
</p>
<p>if( stream-&gt;<a class="el" href="group__video.html#a0883cf58cd0d8d0c05fb192a01250b7a" title="Check if this stream is of a particular type.">IsType&lt;gstCamera&gt;()</a> ) gstCamera* camera = (gstCamera*)stream; // safe to cast </p>

</div>
</div>
<a id="a0883cf58cd0d8d0c05fb192a01250b7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0883cf58cd0d8d0c05fb192a01250b7a">&#9670;&nbsp;</a></span>IsType() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoSource::IsType </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if this stream is of a particular type. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__video.html#a76f6f92cf40ad72e9d7f76538d583e37" title="Return the interface type of the stream.">GetType()</a> for possible values. </dd></dl>

</div>
</div>
<a id="aa7907ba2392b6ea5f747409d1bfbc18b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7907ba2392b6ea5f747409d1bfbc18b">&#9670;&nbsp;</a></span>Open()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool videoSource::Open </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Begin streaming the device. </p>
<p>After <a class="el" href="group__video.html#aa7907ba2392b6ea5f747409d1bfbc18b" title="Begin streaming the device.">Open()</a> is called, frames from the device will begin to be captured.</p>
<p><a class="el" href="group__video.html#aa7907ba2392b6ea5f747409d1bfbc18b" title="Begin streaming the device.">Open()</a> is not stricly necessary to call, if you call one of the <a class="el" href="group__video.html#a338edcb027b28a551b7f75d085ea13f8" title="Capture the next image from the video stream, using the default timeout of 1000ms.">Capture()</a> functions they will first check to make sure that the stream is opened, and if not they will open it automatically for you.</p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> if an error occurred opening the stream. </dd></dl>

<p>Reimplemented in <a class="el" href="group__camera.html#a28f4842c5648a253a1acee5276ac8486">gstCamera</a>, <a class="el" href="group__codec.html#aab54dc71e937ed3e8ecd6fd129e16179">gstDecoder</a>, and <a class="el" href="group__image.html#a1af7d6e4e3ad6232c67dcc1307509677">imageLoader</a>.</p>

</div>
</div>
<a id="a38909f4451ecdf3a2777aea3a088677e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38909f4451ecdf3a2777aea3a088677e">&#9670;&nbsp;</a></span>TypeToStr() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char* videoSource::TypeToStr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert this stream's class type to string. </p>

</div>
</div>
<a id="ac080abc0de51300f838596d11b5544a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac080abc0de51300f838596d11b5544a8">&#9670;&nbsp;</a></span>TypeToStr() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* videoSource::TypeToStr </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert a class type to a string. </p>

</div>
</div>
<a id="ac254b0c9d38c76c62e6c5f8ad20ef447"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac254b0c9d38c76c62e6c5f8ad20ef447">&#9670;&nbsp;</a></span>Usage()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* videoSource::Usage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Usage string for command line arguments to <a class="el" href="group__video.html#aadf5947b119db934f02fefcd8ffe23ee" title="Create videoSource interface from a videoOptions struct that&#39;s already been filled out.">Create()</a> </p>

</div>
</div>
<h4 class="groupheader">Member Data Documentation</h4>
<a id="a8bc5b1b9a8bc15292890fef1028adbee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8bc5b1b9a8bc15292890fef1028adbee">&#9670;&nbsp;</a></span>DEFAULT_TIMEOUT</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const uint64_t videoSource::DEFAULT_TIMEOUT =1000</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The default Capture timeout (1000ms) </p>

</div>
</div>
<a id="a587c9a356b2714ba9d6ab0d3bdeeacb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a587c9a356b2714ba9d6ab0d3bdeeacb2">&#9670;&nbsp;</a></span>mLastTimestamp</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t videoSource::mLastTimestamp</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="aa3c05686659fae747ff8709be2c9b445"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3c05686659fae747ff8709be2c9b445">&#9670;&nbsp;</a></span>mOptions</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__video.html#structvideoOptions">videoOptions</a> videoSource::mOptions</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a5f558c27bfac5e117100f8735f09f5bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f558c27bfac5e117100f8735f09f5bc">&#9670;&nbsp;</a></span>mRawFormat</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406">imageFormat</a> videoSource::mRawFormat</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a0907f7140f13fa75fef5b23a1f44b55b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0907f7140f13fa75fef5b23a1f44b55b">&#9670;&nbsp;</a></span>mStreaming</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoSource::mStreaming</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>

</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gaf0923737dee5ff7a8f1a17c4b9c1f2fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf0923737dee5ff7a8f1a17c4b9c1f2fe">&#9670;&nbsp;</a></span>LOG_VIDEO</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LOG_VIDEO&#160;&#160;&#160;&quot;[video]  &quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga408346b18d1f4c711279010d2351f7ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga408346b18d1f4c711279010d2351f7ce">&#9670;&nbsp;</a></span>VIDEO_OUTPUT_USAGE_STRING</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VIDEO_OUTPUT_USAGE_STRING</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">                  <span class="stringliteral">&quot;videoOutput arguments: \n&quot;</span>                                                   \</div>
<div class="line">                  <span class="stringliteral">&quot;    output               resource URI of the output stream, for example:\n&quot;</span>          \</div>
<div class="line">                  <span class="stringliteral">&quot;                             * file://my_image.jpg       (image file)\n&quot;</span>             \</div>
<div class="line">                  <span class="stringliteral">&quot;                             * file://my_video.mp4       (video file)\n&quot;</span>             \</div>
<div class="line">                  <span class="stringliteral">&quot;                             * file://my_directory/      (directory of images)\n&quot;</span>    \</div>
<div class="line">                  <span class="stringliteral">&quot;                             * rtp://&lt;remote-ip&gt;:1234    (RTP stream)\n&quot;</span>             \</div>
<div class="line">                  <span class="stringliteral">&quot;                             * rtsp://@:8554/my_stream   (RTSP stream)\n&quot;</span>            \</div>
<div class="line">                  <span class="stringliteral">&quot;                             * webrtc://@:1234/my_stream (WebRTC stream)\n&quot;</span>          \</div>
<div class="line">                  <span class="stringliteral">&quot;                             * display://0               (OpenGL window)\n&quot;</span>          \</div>
<div class="line">                  <span class="stringliteral">&quot;  --output-codec=CODEC   desired codec for compressed output streams:\n&quot;</span>             \</div>
<div class="line">                  <span class="stringliteral">&quot;                            * h264 (default), h265\n&quot;</span>                                                \</div>
<div class="line">                  <span class="stringliteral">&quot;                            * vp8, vp9\n&quot;</span>                                                                    \</div>
<div class="line">                  <span class="stringliteral">&quot;                            * mpeg2, mpeg4\n&quot;</span>                                                                \</div>
<div class="line">                  <span class="stringliteral">&quot;                            * mjpeg\n&quot;</span>                                                                       \</div>
<div class="line">                  <span class="stringliteral">&quot;  --output-encoder=TYPE  the encoder engine to use, one of these:\n&quot;</span>              \</div>
<div class="line">                  <span class="stringliteral">&quot;                            * cpu\n&quot;</span>                                              \</div>
<div class="line">                  <span class="stringliteral">&quot;                            * omx  (aarch64/JetPack4 only)\n&quot;</span>                     \</div>
<div class="line">                  <span class="stringliteral">&quot;                            * v4l2 (aarch64/JetPack5 only)\n&quot;</span>                     \</div>
<div class="line">                  <span class="stringliteral">&quot;  --output-save=FILE     path to a video file for saving the compressed stream\n&quot;</span> \</div>
<div class="line">                  <span class="stringliteral">&quot;                         to disk, in addition to the primary output above\n&quot;</span>      \</div>
<div class="line">                  <span class="stringliteral">&quot;  --bitrate=BITRATE      desired target VBR bitrate for compressed streams,\n&quot;</span>    \</div>
<div class="line">                  <span class="stringliteral">&quot;                         in bits per second. The default is 4000000 (4 Mbps)\n&quot;</span>      \</div>
<div class="line">                  <span class="stringliteral">&quot;  --headless             don&#39;t create a default OpenGL GUI window\n\n&quot;</span></div>
</div><!-- fragment -->
<p>Standard command-line options able to be passed to <a class="el" href="group__video.html#aa2754b5d31e5466ad35db3f2832209f1" title="Create videoOutput interface from a videoOptions struct that&#39;s already been filled out.">videoOutput::Create()</a> </p>

</div>
</div>
<a id="ga2f89bd1b25834e27c1be213ee862d5ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2f89bd1b25834e27c1be213ee862d5ae">&#9670;&nbsp;</a></span>VIDEO_SOURCE_USAGE_STRING</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VIDEO_SOURCE_USAGE_STRING</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Standard command-line options able to be passed to <a class="el" href="group__video.html#aadf5947b119db934f02fefcd8ffe23ee" title="Create videoSource interface from a videoOptions struct that&#39;s already been filled out.">videoSource::Create()</a> </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Tue Mar 28 2023 14:27:58 for Jetson Inference by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
